読者です 読者をやめる 読者になる 読者になる

【Ruby】カレントディレクトリにあるファイルをrequireする

Ruby

検索すればいくらでも出てくるのでわざわざ書くまでもないかもしれない(笑)
ただ、カレントディレクトリにあるrbファイルを指定できなくて躓いたので一応。

require
→rbファイルの場合拡張子の省略可能

load
→パス指定が必要


requireとloadの使い分けは難しいけど、
個人的にはrbファイルはreuire、それ以外の拡張子のファイルを読み込む場合はloadがいいんじゃないかと。


カレントディレクトリにあるhello.rbという別ファイルを読み込む例

require 'hello'

実はこれエラーになります。
Ruby1.9以降から(?)カレントディレクトリでの扱いが変わったようです。

require './hello'

ちょっと面倒ですけど、明示的にカレントディレクトリであることを指定する必要があるみたいですね。
古めな情報だとこのこと書いてないので私はエラーに???ってなりました(笑)

require './hello.rb'

もちろん拡張子を書いてもOKです。

load './hello.rb'
load '/home/yasu/ruby/hello.rb'

loadの場合は相対パス絶対パスのいずれかの指定が必要です。
そして拡張子の省略も不可。


requireとloadは、拡張子を省略できるという点からrbファイルを扱う際はrequireを使えばいいかと。
逆に、.txtファイルとかを使う際はrequireだとエラーになるため、rbファイル以外の場合はloadかな??