【发布时间】:2011-02-01 18:45:11
【问题描述】:
我正在为 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
先谢谢了,嗯。
【问题讨论】:
标签: ruby dynamic methods metaprogramming