举个例子:
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
这就是 RSpec 需要支持目录和所有子目录中的所有 ruby 文件的方式。我知道这与"/**/*"
. 这在 Ruby 中意味着什么?它是如何工作的?
举个例子:
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
这就是 RSpec 需要支持目录和所有子目录中的所有 ruby 文件的方式。我知道这与"/**/*"
. 这在 Ruby 中意味着什么?它是如何工作的?
File.dirname(__FILE__)
是文件所在的目录。**
并且*
是 UNIX 通配符。添加"/support/**/*.rb
到目录指向以 结尾的任何文件,该文件.rb
位于该目录下的子目录下的任意深度下support
。
将其传递Dir[]
给此类文件的数组。each
遍历这些文件,并require
加载每个文件。
我相信该/**/
部分表示 Any directory ,并且*.rb
表示以 .rb 扩展名结尾的任何文件,无论其名称如何。
所以,基本上,你会得到任何文件夹中的任何 .rb 文件
#{current_dir}/support/#{any_dir}/#{any_file_with_extention.rb}