Я разрабатываю (ну, по крайней мере, пытаюсь) игровую среду для библиотеки Ruby Gosu. Я создал базовую систему событий, в которой каждый Blocks :: Event имеет список обработчиков, и когда событие вызывается, вызываются методы. На данный момент способ реализации события заключается в следующем:
class TestClass
attr_accessor :on_close
def initialize
@on_close = Blocks::Event.new
end
def close
@on_close.fire(self, Blocks::OnCloseArgs.new)
end
end
Но этот метод реализации событий кажется довольно длинным, мой вопрос, как я могу сделать так, чтобы, когда кто-то хочет событие в классе, они могли просто сделать это
class TestClass
event :on_close
def close
@on_close.fire(self, Blocks::OnCloseArgs.new)
end
end
Заранее спасибо, эл.