0

我正在尝试加载一个名为 fatfreecrm (https://github.com/fatfreecrm/fat_free_crm) 的 ruby​​ on rails 应用程序。

无法在我的机器上运行脱轨开发服务器。由于以下行,代码失败:

spec = Bundler.load_gemspec(Dir["./{,*}.gemspec"].first)

(项目 Gemfile 中的第 32 行:https ://github.com/fatfreecrm/fat_free_crm/blob/master/Gemfile )。

试图诊断问题,但无法理解它的作用。特别是["./{, *}.gemspec"指的是什么目录?不明白{, *}简写。

谢谢
埃文

4

1 回答 1

1

这是扩展选项列表的标准 Unix shell glob 语法。即在 Unix shell 中

foo{a, b, c}bar

将扩大到

fooabar foobbar foocbar

所以,

./{, *}.gemspec

将扩大到

./.gemspec ./*.gemspec

在 RubyDir::[]中,它们不会像在 shell 中那样被扩展,但它们被视为匹配文件名的模式,类似于正则表达式的工作方式。

有关详细信息,请参阅 的文档Dir::[],该文档指的是 的文档Dir::glob

于 2012-08-13T19:20:03.233 回答