对于用于测试Rails应用程序的Rails引擎Konacha,我们需要一种方法来查找链轮可以编译到JavaScript的所有文件。
现在我们用的是
Dir['spec/javascripts/**/*_spec.*']但是这会获取.bak、.orig和其他备份文件。
能否告诉我们它是否知道如何编译文件,从而自动排除备份文件?
content_type_of没有帮助:
Rails.application.assets.content_type_of('test/javascripts/foo.js.bak')
=> "application/javascript"发布于 2012-06-12 21:46:53
您可以使用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) # => falsehttps://stackoverflow.com/questions/10994396
复制相似问题