Cleanest/One-liner способ потребовать всех файлов в каталоге в Ruby?

При создании драгоценных камней у меня часто есть структура каталогов как это:

|--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]}" }

Но это - две строки и ужасный. Какие гладкие приемы Вы сделали для создания этого одним лайнером?

21
задан Lance Pollard 21 March 2010 в 19:09
поделиться

1 ответ

project_root = File.dirname(File.absolute_path(__FILE__))
Dir.glob(project_root + '/helpers/*') {|file| require file}

Или немного больше:

Dir.glob(project_root + '/helpers/*', &method(:require))
54
ответ дан 29 November 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: