RubyのrequireとActive Supportの自動requireについて


完全に時代から取り残されていますが、今さらながらに『パーフェクト Ruby』を読んでいます。

その中で、Rubyのrequireについてつい忘れがちになるので、備忘録メモを残しておきます。

またRailsのActive Supportで自動requireしてくれる機能についても、Rubyスクリプトから簡単に書けそうですので、こちらも合わせて共有です。


🐡 Rubyの標準ライブラリとか、外部ファイルの読み込み

Rubyの標準ライブラリとか、外部ファイルを読み込む場合。

require 'erb'
# ローカルファイルのrequireは、'./'と書くべき
require './hoge'

参考リンク

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に追加
$LOAD_PATH << File.dirname(__FILE__)

🎳 RubyでActive Supportの自動requireを使う

RailsのActive Supportがやってくれる自動requireを、Rubyスクリプト内で実行する方法がかなり便利そうだったので共有!

require 'active_support/dependencies'
ActiveSupport::Dependencies.autoload_paths << "/path/to/my_library"

これで、/パス/to/my_library次にあるファイルを自動でRequireしてくれるそうです。

参考リンク

RailsじゃなくてもActiveSupportの自動require機能を使う - 昼メシ物語

👽 所感

Rubyスクリプトを書く上で、基礎中の基礎だと思いますが今までちゃんと理解できていませんでした。ちゃんと理解してRubyスクリプトをしっかり使えるようになりたい!

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)