メタプログラミングRuby 第2章 火曜日:メソッド その1
- 作者: Paolo Perrotta,角征典
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2010/08/28
- メディア: 大型本
- 購入: 18人 クリック: 533回
- この商品を含むブログ (125件) を見る
第2章に突入です。
- 小話部分だけど経費の上限 99ドルはないだろー。この本はこういう細部がおもしろい
- DataSource でクラス名が DS はひどい
- 動的メソッド
- Object#send でメソッドを動的に呼ぶ(動的ディスパッチ)
- send で private メソッドが呼べてしまうことはここのコラムで触れられてました
- なお 1.9 で send が private を呼べなくするという議論はあって、private メソッドを呼べる funcall メソッドを追加して対処するというものでしたが、これはボツになって実際には send の挙動はそのままに、public_send が追加されるという保守的な変更に留まりました
- Module#define_method でメソッドを動的に定義する
- 以上2つの合わせ技でデータからプログラムを生成する
- さらに DS のオブジェクトから methods でメソッド名を取り出して定義するメソッド名も自動検出
- Object#send でメソッドを動的に呼ぶ(動的ディスパッチ)
今日はここまで。次は method_missing を使った方法です。