軽い書き捨てスクリプトを除けば、Rubyコードは複数ファイルにまたがることが普通です。別のファイルに書かれたコードを読み込むために、いくつかメソッドが用意されています。それらの使い方を比較して行きます。

require

最も基本的なメソッドはrequireです。ロードしたいファイルまでのパスを記載します。拡張子の「.rb」は省略可能です。

ディレクトリ内にrequire_a.rbrequire_b.rbというファイルがあるとして、aからbを読み込んでみます。

例にある通り、同じディレクトリにあるファイルであってもファイル名を書くだけではロードすることが出来ず、カレントディレクトリ「.」を付ける必要があります。

require relative

require_relativeは「そのファイルが置かれているディレクトリ」からの相対パスで記載されたファイルを解釈できます。例えば、以下の様なディレクトリ構成でファイルが置かれているとき、

abc/foo.rb の中から abc/def/bar.rb をロードするには次のようにします。

Rubyでは実行中ファイルまでの絶対パスを__FILE__で取得できるので、例にあるようにFile.expand_pathFile.dirnameを組み合わせてrequire_relativeと同じく相対パスでのロードをさせることもできます。

次のページでは、ロードパス(LOAD_PATH)の概念について解説します。