Ruby クラスにメソッドを動的に追加するモジュールをとても楽しんでいます。
インクルード構文を使用してこれらをクラスに取り入れていますが、すべてが期待どおりに機能しています。
ただし、Authlogic や Paperclip などの gem を使用する場合、明示的なインポートは必要ないことに気付きました。ActiveRecord 派生モデルでacts_as_authentic または has_attached_file を発行するだけで、クラス メソッドは自動的にスコープ内にあり、クラスを装飾するために呼び出されます。
何が起きてる?Gemfile に含めると、すべてのクラス メソッドが暗黙的にスコープに含まれますか?
同じように動作する Gem を書きたいと思います。
編集 - この投稿http://yehudakatz.com/2009/11/12/better-ruby-idioms/は、ActiveRecord::Base がインクルードによって強化されていることを示唆しています。これは何が起こっているのですか?