需要子目录中的所有文件

Eth*_*aub 13 ruby filesystems require

我有以下目录树.

- app.rb
- folder/
  - one/
    - one.rb
  - two/
    - two.rb
Run Code Online (Sandbox Code Playgroud)

我希望能够在文件夹/目录中加载Ruby文件,甚至是子目录中的文件.我该怎么办?

Bri*_*per 19

Jekyll用它的插件做了类似的事情.像这样的东西应该做的伎俩:

    Dir[File.join(".", "**/*.rb")].each do |f|
      require f
    end
Run Code Online (Sandbox Code Playgroud)

  • 如果您有继承,则需要对所需的文件进行排序,以便首先需要顶级类.Dir [File.join("#{Rails.root}/app/classes","**/*.rb")].sort_by {| path | path.split("/").length} .each do | f | 要求结束 (2认同)

Phr*_*ogz 18

代码较少,但仍在Linux,OS X和Windows上运行:

Dir['./**/*.rb'].each{ |f| require f }
Run Code Online (Sandbox Code Playgroud)

'.'需要对Ruby 1.9.2在当前目录的路径不再一部分.