メタプログラミングRuby 第7章 ActiveRecord の設計 その2
今日は ActiveRecord::Base で使われているメタプログラミングの実際について。
- autoload で require を遅延
- Validations の included でサブモジュールを追加 include させる
- クラス拡張ミックスインで ActiveRecord::Base の特異クラスに Validations などを include している
- alias_method_chain
- 「アラウンドエイリアス」を規約を元に自動化した「クラスマクロ」。これは「魔術を編む魔術」でとても強力ですね
- 教訓3つ
これで第7章は終わりです。第8章は「ActiveRecordの中身」?もうちょっと詳細を見ていくということでしょうか。楽しみです。