我正在为Ruby Gosu库开发(以及至少尝试)Game框架。我做了一个基本的事件系统,每个Blocks :: Event都有一个处理程序列表,当事件被触发时,这些方法被调用。目前,实现事件的方法如下:在方法Defenition之外定义实例变量(ruby)
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
在此先感谢,埃尔。
确实如此。正如我所说,只是一个未经测试的快速拍摄,感谢您指出:-) – 2010-03-28 21:19:31
它似乎工作在一个不需要初始化逻辑的类,这意味着我需要做一个别名,以及对我来说,有点了反红宝石,投入更多的工作超过必要,所以我只是坚持手动添加它,也许我会找到一种方式,但现在它的直到我们再次见面:) – Ell 2010-03-29 19:24:55