Rubyで特定のディレクトリ以下のファイルを一括requireする
タイトル通り、特定のディレクトリ以下にあるファイルを一括でrequireする方法
ディレクトリ構成
├── libs │ ├── hoge.rb │ └── piyo.rb └── run.rb
上記のlibs以下を読み込んでみる。
コード
- hoge.rb
module Test class Hoge def output() puts 'hoge' end end end
- piyo.rb
module Test class Piyo def output() puts 'piyo' end end end
- run.rb
#!/usr/bin/env ruby basedir = File.dirname __FILE__ $: << File.expand_path(basedir + "/libs") Dir::glob(basedir + '/libs/*.rb').each do |f| require File::basename f, '.rb' end hogehoge = Test::Hoge.new() piyopiyo = Test::Piyo.new() hogehoge.output piyopiyo.output
結果
% ruby run.rb hoge piyo
実際使うときは例外もちゃんと考える必要あり。