Como o ruby permite um método e uma classe com o mesmo nome?

Por acaso, eu estava trabalhando em uma classe Singleton em rubi e lembrei-me da maneira como ela funciona.factory_girl. Eles trabalharam para que você possa usar os doiso longo caminho Factory.create(...) eo caminho curto Factory(...) Eu pensei sobre isso e fiquei curioso para ver como eles fizeram a aulaFactory também se comportam como um método.

Eles simplesmente usaramFactory duas vezes mais ou menos:

def Factory (args)
  ...
end

class Factory
  ...
end

Minha pergunta é:Como o ruby consegue isso? e Existe perigo em usar esse padrão aparentemente peculiar?

questionAnswers(1)

yourAnswerToTheQuestion