久しぶりに新しいマシンにRubyをインストールして、テスト用のプログラムを起動してみたらエラーを吐いてしまいました。旧マシンは1.9.2p0 [i386-mingw32]、新しいマシンは1.9.2p290 [i386-mingw32] です。どうも自作のライブラリのロードに失敗している(ファイルが見つからないと言っている)ようなので、試しにスクリプトの最初に下記を追加してみたところ動作するようになりました。どうやら$LOAD_PATHにカレントディレクトリが含まれていないのが原因のようです。
いろいろ調べてみると同じようなところでハマった人のエントリを発見。
Ruby 1.9.2から$LOAD_PATHにカレントディレクトリが含まれなくなった - ぬいぐるみライフ(仮)
タイトルの通り,Ruby 1.9.2から$LOAD_PATHにカレントディレクトリが含まれなくなった($:も同様).この変更により,以下のような条件でrequireを使っているスクリプトが動かなくなった.
・スクリプトが置いてあるディレクトリdirで実行することが前提として作られている
・他のスクリプトをdirからの相対パスでrequireしている
下記のような方法が使えるらしいので、今回はこれで済ませる事にしました。
後方互換性を考えなければ、require_relativeを使うのがいいみたいです。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4440
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。