當創建的寶石,我經常有這樣的目錄結構:最簡潔/一種方式要求Ruby中的目錄中的所有文件?
|--lib
|-- helpers.rb
`-- helpers
|-- helper_a.rb
`-- helper_b.rb
的helpers.rb
裏面,我只是require
-ing在helpers
目錄中的文件。但我必須做這樣的事情:
$:.push(File.dirname(__FILE__) + '/helpers')
require 'helper_a'
require 'helper_b'
有沒有辦法讓這一行,所以我永遠不必添加到它?我剛想出了這個真正的快速:
dir = File.join(File.dirname(__FILE__), "helpers")
Dir.entries(dir)[2..-1].each { |file| require "#{dir}/#{file[0..-4]}" }
但它是兩條線和醜陋。你做了什麼樣的花招讓它成爲一個班輪?
重複的http://stackoverflow.com/questions/735073/best-使用Dir [「/ path/to/directory/*。rb」]。每個{| file | from-a-directory-in-ruby - 需要文件}' – 2010-03-21 19:13:04
更好,使用該問題中提到的require_all gem。 – clacke 2011-06-09 08:36:51