[Ruby] Ruby で .rb ファイルを require する

memo.

ローカルファイルの読み込み

require './foo'

require は、$LOAD_PATH に登録されている探索パスから検索する

% pry
[1] pry(main)> $LOAD_PATH
=> ["/Users/****/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/coderay-1.1.0/lib",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/slop-3.5.0/lib",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/method_source-0.8.2/lib",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/pry-0.9.12.6/lib",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/site_ruby/2.1.0",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/site_ruby/2.1.0/x86_64-darwin13.0",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/site_ruby",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/vendor_ruby/2.1.0",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/vendor_ruby/2.1.0/x86_64-darwin13.0",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/vendor_ruby",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/2.1.0",
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0"]
[3] pry(main)> $LOAD_PATH << File.dirname(__FILE__)
=> ["/Users/****/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/coderay-1.1.0/lib",
    :
 "/Users/****/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0",
 "."]

カレントディレクトリをロードパスに追加する処理。

その1

$LOAD_PATH << File.dirname(__FILE__)

その2

$:.unshift File.dirname(__FILE__)

ディレクトリ内のファイルをまとめて require する

Dir[File.expand_path('../lib', __FILE__) << '/*.rb'].each do |file|
  require file
end