Зачем нужны два способа объявления метода класса?

Метод класса можно определить в определении класса, а также вне класса:

  class Demo
    def Demo.classMethod
    end
  end

  def Demo.anotherClassMethod
  end

Есть только одна существенная разница между этими способами: в определении класса можно обращаться к константам напрямую, так как они находятся в текущем пространстве имен. Определяя метод класса вне класса, нужно использовать нотацию Class::CONST.

Вход для пользователей