メタプログラミングRuby 第5章 金曜日:コードを記述するコード その3

第5章、eval を使った実践編。

  • まずはクラスマクロ attr_checked ではなくカーネルメソッドとして add_checked_attr(klass, meth) のようなメソッドを定義(手順1)
  • eval でべったりとクラスを開いてメソッド定義。これはかなりの力技
  • すぐに eval を使わずに class_eval と define_method を使った方法に書き替え。(手順2)これ eval を使った方法意味あったのかな。どちらも既に紹介された手法だし。
  • instance_variable_get/set を使う
  • 属性の検証方法をブロックで受け取るように改造(手順3)
  • カーネルメソッドからクラスマクロとして定義

ここまでそんなに新しいトピックは出てきていませんね。
次はフックメソッドという手法が出てくるようです。