Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > load

module function Kernel.#load

load(file, priv = false) -> true[permalink][rdoc]

Ruby プログラム file をロードして実行します。再ロード可能です。

file が絶対パスのときは file からロードします。 file が相対パスのときは組み込み変数 $: に示されるパスとカレントディレクトリを順番に探し、最初に見付かったファイルを ロードします。このとき、$: の要素文字列の先頭文字が `~' (チルダ) だと、環境変数 HOME の値に展開されます。 また `~USER' はそのユーザのホームディレクトリに展開されます。

ロードに成功した場合は true を返します。

[PARAM] file:
ファイル名の文字列です。
[PARAM] priv:
真のとき、ロード・実行は内部的に生成される 無名モジュールをトップレベルとして行われ、 グローバルな名前空間を汚染しません。
[EXCEPTION] LoadError:
ロードに失敗した場合に発生します。

[SEE_ALSO] Kernel.#require

require と load の違い

Kernel.#require は同じファイルは一度だけしかロードしませんが、 Kernel.#load は無条件にロードします。 また、require は拡張子.rb や .so を自動的に補完しますが、 load は行いません。 require はライブラリのロード、load は 設定ファイルの読み込みなどに使うのが典型的な用途です。

# 使用例
load "#{ENV['HOME']}/.myapprc"
load "/etc/myapprc"

なお、特定のディレクトリからファイルをロードしたい場合、 load 'filename' とするのは不適切です。必ず絶対パスを 使ってください。