Понимание метода method_added для методов класса

Я хотел бы творить чудеса в момент добавления методов экземпляра и класса к какому-либо классу. Поэтому я попробовал следующее:

module Magic
  def self.included(base)
    base.extend ClassMethods
  end  
  module ClassMethods
    def method_added(name)
      puts "class method '#{name}' added"
    end  
    def some_class_method
      puts "some class method"
    end  
  end  
end

class Foo
  include Magic
  def self.method_added(name)
    puts "instance method #{name} added"
  end  
end

Этот подход хорошо работает для методов экземпляра, не работает для методов класса. Как я могу это решить? Есть предложения?

17
задан Phrogz 26 January 2011 в 05:58
поделиться