includeだけでincludeとextendする方法
読んでます。
- 作者: Paolo Perrotta,角征典
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2010/08/28
- メディア: 大型本
- 購入: 18人 クリック: 533回
- この商品を含むブログ (125件) を見る
その中でMerbを例に「クラス拡張ミックスイン」という技が載っていた。
簡単に言えば、モジュールをいつものようにincludeするだけで、クラスメソッド化もしてしまう方法である。
いやーほんとRubyって魔術っぽいですよね。
module Hoge def self.included(base) base.extend(self) end def hoge "hoge!!!!" end end class Fuga include Hoge end puts Fuga.new.hoge #=> "huge!!!!" puts Fuga.hoge #=> "huge!!!!"
モジュールがincludeされたときのフックメソッドをオーバライドして、
更に中でextendしてしまうという。