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?

questionAnswers(2)

yourAnswerToTheQuestion