Я попытался реализовать класс, позволяющий его подклассам сохранять блоки методов для их последующего выполнения. Это работает, но, похоже, я поступил неправильно. Посмотрите на это:
class SuperKlass
def self.exec_later(&block)
@@block_for_later = block
end
def exec_now
return unless @@block_for_later
@@block_for_later.call
end
end
class ChildKlass < SuperKlass
exec_later do
child_method
end
def child_method
puts "Child method called"
end
end
test_klass = ChildKlass.new
test_klass.exec_now
Если я пытаюсь выполнить этот фрагмент кода, вызов child_method
в блоке приводит к ошибке отсутствия метода. Кто-нибудь знает, что я делаю неправильно, и как правильно добавить такую функциональность?