Этот код из книги Rails ускоренный курс:Явное использование `self` в имени метода в определении класса
class Accessor
def self.accessor(attr)
class_eval "
def #{attr}
@#{attr}
end
def #{attr}=(val)
@#{attr} = val
end
"
end
end
Идея заключается в том, что подкласс Accessor
может создавать методы получения и установки, вызвав accessor
метод с именем атрибута, для которого мы хотим, чтобы генерировать методы получения и установки:
class Element < Accessor
accessor :name
...
Но, почему использование self
в def self.accessor(attr)
?
Действительно! Я пришел из Java и python, и я забыл синтаксис для определения методов класса. Спасибо. – malfunctioning