При создании драгоценных камней у меня часто есть структура каталогов как это:
|--lib
|-- helpers.rb
`-- helpers
|-- helper_a.rb
`-- helper_b.rb
В helpers.rb
, Я справедлив require
- луг файлы в 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]}" }
Но это - две строки и ужасный. Какие гладкие приемы Вы сделали для создания этого одним лайнером?
project_root = File.dirname(File.absolute_path(__FILE__))
Dir.glob(project_root + '/helpers/*') {|file| require file}
Или немного больше:
Dir.glob(project_root + '/helpers/*', &method(:require))