我已经从编译的C++库成功生成了一个ruby模块,但是我想添加一些ruby方法。例如,图书馆之一返回您通过访问对象的链接列表:向swig生成的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
问题不在于如何创建方法,而是应该如何将它们添加到类中?
我应该打开这些类并添加方法吗?
我正在考虑创建子类,但由于涉及到继承,所以这似乎很麻烦,所以我认为如果我这样做,我将不得不重新创建继承?
如果我决定打开课程,那么最好的方法是什么?
*我应该打开类并添加方法吗?*是的,你可以做到这一点。 –
看到[推荐的方法来猴子修补类在红宝石](http://stackoverflow.com/questions/10337712/recommended-approach-to-monkey-patching-a-class-in-ruby)或更多[红宝石猴子补丁(https://www.google.co.in/search?client=ubuntu&channel=fs&q=ruby+monkey+patch+class&ie=utf-8&oe=utf-8&gws_rd=cr&ei=ZR61UpSkOMePrQeAo4HQDw) –