1

举个例子:

Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }

这就是 RSpec 需要支持目录和所有子目录中的所有 ruby​​ 文件的方式。我知道这与"/**/*". 这在 Ruby 中意味着什么?它是如何工作的?

4

2 回答 2

1

File.dirname(__FILE__)是文件所在的目录。**并且*是 UNIX 通配符。添加"/support/**/*.rb到目录指向以 结尾的任何文件,该文件.rb位于该目录下的子目录下的任意深度下support

将其传递Dir[]给此类文件的数组。each遍历这些文件,并require加载每个文件。

于 2013-10-21T02:36:13.650 回答
0

我相信该/**/部分表示 Any directory ,并且*.rb表示以 .rb 扩展名结尾的任何文件,无论其名称如何。

所以,基本上,你会得到任何文件夹中的任何 .rb 文件

#{current_dir}/support/#{any_dir}/#{any_file_with_extention.rb}

于 2013-11-06T11:25:18.003 回答