我已经从已编译的c ++库中成功生成了ruby模块,但我想添加一些ruby方法。例如,其中一个库返回您通过以下方式访问的对象的链接列表:
objects.get_first_object
objects.get_next_object
我想添加一个方法,以便我可以
objects.each do |object|
...
end
所以可能像
def to_a
ret = Array.new
obj = objects.get_first_object
while obj
ret << obj
obj = objects.get_next_object
end
return ret
end
问题不在于如何创建方法,而是应该如何将它们添加到类中?
我应该打开课程并添加方法吗? 我正在考虑创建子类,但由于涉及到继承,因此看起来很混乱,所以我想如果我这样做,我将不得不重新创建继承?
如果我决定开课,最好的方法是什么?
答案 0 :(得分:2)
只需打开课程并添加方法:
class SwigGeneratedClass
def to_a
ret = Array.new
obj = objects.get_first_object
while obj
ret << obj
obj = objects.get_next_object
end
return ret
end
end
没有理由做任何更好的事情。