- 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/10
- メディア: 大型本
- この商品を含むブログ (22件) を見る
10-3 イベントをフックする
Module#included, extended, inherited は知っていましたが method_added, method_removed, method_undefined なんかも用意されているのですね。
ちなみに inherited は、以前 RubyMotionで使われているのを調べた 際に初めて見て感動しました。
本書の例は以下。
class SuperClass class << self def inherited(subclass) @classes ||= [] @classes << subclass end def subclasses @classes end end end SuperClass.subclasses # => nil class Sub1 < SuperClass; end class Sub2 < SuperClass; end class Sub3 < SuperClass; end SuperClass.subclasses # => [Sub1, Sub2, Sub3]