加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 链轮/导轨:查找所有文件链轮知道如何编译

发布时间:2020-12-17 04:05:45 所属栏目:百科 来源:网络整理
导读:对于用于测试Rails应用程序的Rails引擎Konacha,我们需要一种方法来查找Sprockets可以编译为 JavaScript的所有文件. 现在我们使用类似的东西 Dir['spec/javascripts/**/*_spec.*'] 但这会选择.bak,.orig和其他备份文件. Sprockets能否以某种方式告诉我们它是
对于用于测试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"

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读