軽い書き捨てスクリプトを除けば、Rubyコードは複数ファイルにまたがることが普通です。別のファイルに書かれたコードを読み込むために、いくつかメソッドが用意されています。それらの使い方を比較して行きます。
require
最も基本的なメソッドはrequire
です。ロードしたいファイルまでのパスを記載します。拡張子の「.rb」は省略可能です。
ディレクトリ内にrequire_a.rb
とrequire_b.rb
というファイルがあるとして、aからbを読み込んでみます。
例にある通り、同じディレクトリにあるファイルであってもファイル名を書くだけではロードすることが出来ず、カレントディレクトリ「.」を付ける必要があります。
require relative
require_relative
は「そのファイルが置かれているディレクトリ」からの相対パスで記載されたファイルを解釈できます。例えば、以下の様なディレクトリ構成でファイルが置かれているとき、
abc/foo.rb
の中から abc/def/bar.rb
をロードするには次のようにします。
Rubyでは実行中ファイルまでの絶対パスを__FILE__
で取得できるので、例にあるようにFile.expand_path
とFile.dirname
を組み合わせてrequire_relative
と同じく相対パスでのロードをさせることもできます。
次のページでは、ロードパス(LOAD_PATH
)の概念について解説します。