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

第5章 後半、フックメソッドのところからです。

  • フックメソッドとは inherited, included, method_added など何かイベントがあった時にインタプリタから自動的に呼ばれるメソッドのこと
  • Merb の例 - included を使って Merb::Cache::CacheMixin が include された時にそのクラスに同時に extend も実行してクラスマクロも展開している
    • クラス拡張 + フックメソッド = クラス拡張ミックスイン
      • うーん、この説明だとモジュールにはクラスメソッドにしたいメソッドしかないみたいだから、それだったら始めから include しないで extend しろよってことになりそう。インスタンスメソッドとクラスメソッドを同時に混ぜこむのでないと意義が感じられない
  • フックメソッドを使って attr_checked をモジュールで定義(手順5)
  • 第6章 エピローグ
    • 「だが、学んだことを忘れられるほど賢いかね? メタプログラミングというものなど存在しない。すべてはただのプログラミングじゃ。去るがいい。静かに瞑想させておくれ」

来週からは第2部「Railsにおけるメタプログラミング」を読みます。