Por que o método 'self' do módulo não pode se tornar um método singleton de classe?

<code>module Test
  def self.model_method
    puts "this is a module method"
  end
end

class A
  include Test
end

A.model_method
</code>

isso será erro com:

Método indefinido `model_method 'para A: Class (NoMethodError)

Mas quando eu uso metaclasse de A. funciona:

<code>module Test
  def model_method
    puts "this is a module method"
  end
end

class A
  class << self
    include Test
  end
end

A.model_method
</code>

Alguém pode explicar isso?

questionAnswers(2)

yourAnswerToTheQuestion