【发布时间】:2016-05-29 14:22:57
【问题描述】:
对于我的 Sass 文件的导入,我使用 sass-rails' (https://github.com/rails/sass-rails) glob 功能。它说
可以使用任何有效的 ruby glob
我想在使用@import 时排除一个目录和一个文件。 任何使用块的 ruby 代码在这种情况下都不起作用。但即使尝试排除单个文件也无法按我想要的方式工作。
考虑这个树形结构
/_bar.scss
/_foo.scss
/all.scss
例如,我想排除文件_foo.scss。我在这里读到了https://stackoverflow.com/a/27707682/228370,使用! 你可以否定一个模式。
我尝试了以下方法:
Dir["{[!_foo]}*.scss"]
=> ["all.scss"]
但这会跳过_bar.scss。查看 Ruby 的全局参考 (http://ruby-doc.org/core-2.2.0/Dir.html#method-c-glob) 时,原因就很清楚了:
[设置] 匹配集合中的任何一个字符。行为与正则表达式中的字符集完全相同,包括集合否定 ([^a-z])。
(显然,可以使用! AND ^ 实现否定)
因为我们的模式中有一个下划线,所以每个带下划线的文件都会被排除在外。
但是排除固定文件的解决方案是什么?
【问题讨论】:
标签: ruby-on-rails ruby