【发布时间】:2011-01-30 02:35:52
【问题描述】:
在创建gem时,我经常有这样的目录结构:
|--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]}" }
但它是两条线而且很丑。你做了什么巧妙的技巧来使它成为一个单衬里?
【问题讨论】:
-
重复stackoverflow.com/questions/735073/… - 使用
Dir["/path/to/directory/*.rb"].each {|file| require file } -
更好的是,使用该问题中提到的 require_all gem。