gpt4 book ai didi

ruby-on-rails - sprockets/rails : Find all files Sprockets knows how to compile

转载 作者:行者123 更新时间:2023-12-04 21:59:37 26 4
gpt4 key购买 nike

对于用于测试 Rails 应用程序的 Rails 引擎 Konacha,我们需要一种方法来查找 Sprockets 可以编译为 JavaScript 的所有文件。

现在我们使用类似的东西

Dir['spec/javascripts/**/*_spec.*']

但这回升 .bak , .orig ,以及其他备份文件。

Sprockets 能否以某种方式告诉我们它是否知道如何编译文件 ,以便自动排除备份文件?
content_type_of没有帮助:
Rails.application.assets.content_type_of('test/javascripts/foo.js.bak')
=> "application/javascript"

最佳答案

您可以遍历 Sprockets::Environment 中的所有文件的加载路径使用 each_file方法:

Rails.application.assets.each_file { |pathname| ... }

该块将被调用 Pathname加载路径中每个文件的完全扩展路径的实例。
each_file返回 Enumerator ,因此您可以跳过该块并使用 to_a 获取数组,或调用 include?在上面。例如,要检查文件是否在加载路径中:
assets = Rails.application.assets
pathname1 = Pathname.new("test/javascripts/foo.js").expand_path
pathname2 = Pathname.new("test/javascripts/foo.js.bak").expand_path
assets.each_file.include?(pathname1) # => true
assets.each_file.include?(pathname2) # => false

关于ruby-on-rails - sprockets/rails : Find all files Sprockets knows how to compile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10994396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com