ロードパス
requireやloadでは $: 内のパスからファイルを検索します。
が含まれます。
$:の中身を表示:
puts $:
出力:
/usr/lib/ruby/site_ruby/1.8 /usr/lib/ruby/site_ruby/1.8/i386-cygwin /usr/lib/ruby/site_ruby /usr/lib/ruby/1.8 /usr/lib/ruby/1.8/i386-cygwin .
$: にパスを追加すると任意のディレクトリを検索パスに追加できたりしますが、やっていいのかな?
ファイル構成:
├ mii.rb └ friends ├ kuro.rb └ shiro.rb
mii.rb:
$: << "./friends" # 検索パスに「friends」を追加。 require "friends/kuro" print "mii\n"
kuro.rb:
require "shiro" # kuro.rbからのパスで指定。 print "kuro\n"
shiro.rb:
print "shiro\n"
mii.rbの実行結果:
shiro kuro mii