11
Ruby:require vs require_relative-Ruby <1.9.2と> = 1.9.2の両方で実行する回避策のベストプラクティス
私がしたい場合はベストプラクティスであるrequireRubyで相対ファイルと私はそれが両方は1.8.xおよび> = 1.9.2で動作するようにしたいですか? いくつかのオプションが表示されます: ただやれば$LOAD_PATH << '.'、すべてを忘れる 行う $LOAD_PATH << File.dirname(__FILE__) require './path/to/file' RUBY_VERSION1.9.2未満かどうかを確認し、require_relativeとして定義しrequire、require_relative後で必要な場所すべてで使用する require_relativeすでに存在するかどうかを確認し、存在する場合は、前のケースと同様に続行してください。 次のような奇妙な構造を使用してください-残念ながら、Ruby 1.9では完全に機能していないようです。require File.join(File.dirname(__FILE__), 'path/to/file')$ cat caller.rb require File.join(File.dirname(__FILE__), 'path/to/file') $ cat path/to/file.rb puts 'Some testing' $ ruby caller Some testing $ pwd /tmp $ ruby /tmp/caller Some testing $ ruby tmp/caller tmp/caller.rb:1:in 'require': no such …