2011-12-16 49 views
6

有沒有加載只匹配特定字符串的文件的方法?例如,假設我想加載與account1.rbaccount2.rb等相匹配的文件。我希望能夠像做Ruby'require'with wildcard expression

require File.expand_path("../account*.rb", __FILE__) 

,但當然,這並不工作。做這個的最好方式是什麼?

回答

12

你可以做同樣的事情用一個循環:

Dir.glob(File.expand_path("../account*.rb", __FILE__)).each do |file| 
    require file 
end 

expand_path方法只解決路徑。它不擴展通配符。

+0

如果我想匹配一個特定的字符? 「account_a.rb」,「account_b.rb」等 – denniss 2011-12-16 23:35:15

1

我試圖用它爲Minitest創建一個測試套件,而不使用Rspec。接受的答案並沒有爲我工作,但這並:

require "minitest/autorun" 

Dir.glob("*_test.rb").each do |file| 
    require_relative file 
end 
0

我用這個:

Dir.entries(File.dirname(__FILE__)). 

    grep(/test.*\.rb/) { | file | require_relative file } 

不幸的是Ruby沒有點之前換行允許,所以理想的形式不工作:

Dir.entries(File.dirname(__FILE__)) 

    .grep(/test.*\.rb/) { | file | require_relative file }