Jo *_*iss 4 ruby-on-rails sprockets asset-pipeline konacha
对于用于测试Rails应用程序的Rails引擎Konacha,我们需要一种方法来查找Sprockets可以编译为JavaScript的所有文件.
现在我们使用类似的东西
Dir['spec/javascripts/**/*_spec.*']
Run Code Online (Sandbox Code Playgroud)
但这种回升.bak,.orig以及其他备份文件.
Sprockets能否以某种方式告诉我们它是否知道如何编译文件,以便自动排除备份文件?
content_type_of 无济于事:
Rails.application.assets.content_type_of('test/javascripts/foo.js.bak')
=> "application/javascript"
Run Code Online (Sandbox Code Playgroud)
Sam*_*son 15
您可以Sprockets::Environment使用以下each_file方法遍历加载路径中的所有文件:
Rails.application.assets.each_file { |pathname| ... }
Run Code Online (Sandbox Code Playgroud)
将使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4334 次 |
| 最近记录: |