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スクリプトをしっかり使えるようになりたい!

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍