我在音频应用程序环境中使用Ruby组件。这个Ruby组件由RubyEdit
类的实例表示。这提供了我的Ruby代码和Environment之间的接口。
例如,如果我写self
,它会输出表示该组件的RubyEdit类的实例:
好处是我可以/必须“实现/扩展”RubyEdit
在获取某些事件时会调用的一些方法。我可以为该实例定义我的自定义方法event
:
def event
# my own event code
end
当环境在这个Ruby组件之外获得一些事件时,它将被调用。或者我可以拨打名为class method
的{{1}},它会调用我的自定义方法redraw
:
draw
我需要了解这个过程的一些层次结构,所以我在Ruby中模拟了 def draw
# my own draw code (this will called after invoking redraw from Ruby Component)
end
类。
看起来如何?我的意思是:我如何提供将在“以后”定义的方法?
这就是我认为RubyEdit的样子:
RubyEdit
但我不明白如何放置class RubyEdit
def self.redraw
# calling this class method should invoke my extended draw method
end
def draw
end
def event
end
end
和event
方法。接口
答案 0 :(得分:3)
module ExtendRubyEdit
def self.included(base)
base.extend(ClassMethods)
end
def draw
end
def event
end
module ClassMethods
def redraw
end
end
end
class RubyEdit
include ExtendRubyEdit
end