Compreendendo method_added para métodos de classe

Eu gostaria de fazer um pouco de mágica no momento, e os métodos de classe são adicionados a alguma classe. Portanto, tentei o seguinte:

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

Essa abordagem funciona bem, por exemplo, métodos, falha nos métodos de classe. Como posso resolver isso? Alguma sugestão?

questionAnswers(1)

yourAnswerToTheQuestion