読者です 読者をやめる 読者になる 読者になる

RailsじゃなくてもActiveSupportの自動require機能を使う

ruby

Railsでは、 config/application.rb で

config.autoload_paths << Rails.root.join("lib")

と書いておくと、例えば

$ cat lib/my_library.rb
class MyLibrary
   :
end

みたいなファイルが置いてあれば、Railsアプリ内で MyLibrary クラスを特にrequireしなくても使える。これは ActiveSupport::Dependencies というクラスが const_missing をフックして、 autoload_paths にあるディレクトリの中から適切なファイルを自動requireしてくれるから。
これは大変便利なので、Railsじゃないアプリから使いたい。

やりかた

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

これだけで、これ以降のconst_missingで /path/to/your/library 以下に置いてあるファイルを自動requireしてくれるようになる。

今回の環境