class << self
def current_section(*section)
if section.empty?
@current_section
else
@current_section = section[0]
end
end
end
Эта часть кода оценивается в области объекта класса из-за оператора class << self
.Таким образом, current_section
определяется как метод класса, который вызывается как Myclass.current_section.
def current_section()
self.class.current_section
end
Эта часть является просто определением метода экземпляра, и, таким образом, self
является экземпляром Myclass
объект.
self.class
получает класс такого экземпляра, таким образом, Myclass
, и вызывается метод current_section класса.