in ruby qual é a diferença entre self.method e um método dentro da classe << self
class Foo
def self.one; 1 end
class << self
def two; 2 end
end
end
puts Foo.singleton_methods.inspect # => ["two", "one"]
Me disseram que os métodos acima "um" e "dois" são conceitualmente diferentes, mas não vejo como. Ambos são métodos singleton - qual é a diferença de conceito e também de aplicação?