メタプログラミングRuby 第8章 ActiveRecord の中身 その1
- 作者: Paolo Perrotta,角征典
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2010/08/28
- メディア: 大型本
- 購入: 18人 クリック: 533回
- この商品を含むブログ (125件) を見る
第8章では ActiveRecord の動的属性と動的ファインダについてソースコードを中心に見ていくそうです。今日は動的属性。
- method_missing による「ゴーストメソッド」の一種
- private method の呼び出しだったら例外にする(迂回を禁止)
- 属性のアクセサは最初に呼ばれた時に定義して次回からは method_missing を使わない(パフォーマンス上優れている)
- primary_key な属性などその他の属性は動的なまま
- メソッドの種類を判定して「動的ディスパッチ」で呼び出す
- method_missing でメソッドをフォローしているぶん respond_to? にも追加。前も書きましたが最近の 1.9 なら respond_to_missing? で定義するほうがいいです。
やはり実例となると魔術の密度が濃くなっているようです。次は動的ファインダのところです。