有沒有加載只匹配特定字符串的文件的方法?例如,假設我想加載與account1.rb
account2.rb
等相匹配的文件。我希望能夠像做Ruby'require'with wildcard expression
require File.expand_path("../account*.rb", __FILE__)
,但當然,這並不工作。做這個的最好方式是什麼?
有沒有加載只匹配特定字符串的文件的方法?例如,假設我想加載與account1.rb
account2.rb
等相匹配的文件。我希望能夠像做Ruby'require'with wildcard expression
require File.expand_path("../account*.rb", __FILE__)
,但當然,這並不工作。做這個的最好方式是什麼?
你可以做同樣的事情用一個循環:
Dir.glob(File.expand_path("../account*.rb", __FILE__)).each do |file|
require file
end
的expand_path
方法只解決路徑。它不擴展通配符。
我試圖用它爲Minitest創建一個測試套件,而不使用Rspec。接受的答案並沒有爲我工作,但這並:
require "minitest/autorun"
Dir.glob("*_test.rb").each do |file|
require_relative file
end
我用這個:
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 }
如果我想匹配一個特定的字符? 「account_a.rb」,「account_b.rb」等 – denniss 2011-12-16 23:35:15