Получение имени класса из метода initialize, когда класс унаследован от Hash - PullRequest
3 голосов
/ 27 сентября 2011

У меня есть класс, который наследуется от Hash. Когда сам этот класс наследуется, я хочу знать имя класса наследующего класса из метода initialize. Когда я звоню self, я получаю {}, который не знает о методе name.

class Foo < Hash
  def initialize
    # Here i want to know that the class is Foo
  end
end

Как я могу получить имя класса?

Ответы [ 2 ]

9 голосов
/ 27 сентября 2011

Все очень просто: self.class.name

1 голос
/ 27 сентября 2011

Ответ Дэниела Брокмана вернет вам строку, если вы хотите выполнить проверку:

if self.kind_of?(Foo)
  #whatever you want
end

Это связано с намерением инициализатора, когда вы вызываете Foo.new экземпляр всегда будетэкземпляр класса Foo или child, поэтому я не понимаю, что вы пытаетесь сделать.

...