完全に時代から取り残されていますが、今さらながらに『パーフェクト Ruby』を読んでいます。
その中で、Rubyのrequire
についてつい忘れがちになるので、備忘録メモを残しておきます。
またRailsのActive Supportで自動requireしてくれる機能についても、Rubyスクリプトから簡単に書けそうですので、こちらも合わせて共有です。
🐠 Rubyの標準ライブラリとか、外部ファイルの読み込み
Rubyの標準ライブラリとか、外部ファイルを読み込む場合。
require 'erb' |
参考リンク
Ruby 1.9.2からは、ロードパスにカレントディレクトリが含まれなくなったそうですので、require ‘./‘ としたほうがいいそうです。さっきハマってました…
Rubyでrbファイルをrequireするときはドットを打つと良さそう - アインシュタインの電話番号
🗻 実行ファイル絡みた相対パスでrequire
実行ファイル絡みた相対パスでrequireする場合は、require_relative
とします。
require_relative 'my_library' |
🏈 $LOAD_PATHを追加
requireでは、$LOAD_PATH
に登録されている探索パスから検索します。ということで、$LOAD_PATH
にパスを追加すると、require
するときに相対パスにできます。
## 実行ファイルのあるディレクトリを$LOAD_PATHに追加 |
🚕 RubyでActive Supportの自動requireを使う
RailsのActive Supportがやってくれる自動requireを、Rubyスクリプト内で実行する方法がかなり便利そうだったので共有!
require 'active_support/dependencies' |
これで、/パス/to/my_library
次にあるファイルを自動でRequireしてくれるそうです。
参考リンク
RailsじゃなくてもActiveSupportの自動require機能を使う - 昼メシ物語
🚌 所感
Rubyスクリプトを書く上で、基礎中の基礎だと思いますが今までちゃんと理解できていませんでした。ちゃんと理解してRubyスクリプトをしっかり使えるようになりたい!