【发布时间】:2013-09-24 20:51:02
【问题描述】:
我目前正在为 Redmine 创建一个我自己的插件。我在其核心中找到了以下方法(不是确切的代码,但保留了这个想法):
def method(foo, bar, array)
# Do some complex stuff with foo and bar
@array = array
@array.uniq!
@array = @array[0:3]
# Do some complex weird stuff with @array
end
我必须将这个“3”更改为“6”,因为数组中的三个元素不足以满足我的插件的目的。我可以手动更改它并且没有崩溃,但我不想修补 Redmine 的核心。所以,我正在编写一个插件,用我自己的实现替换这个方法,它做同样的事情,但是三个变成了六个。
问题是:如果此文件更新,将使用过时的方法。有什么方法可以在运行时检查方法内部写入的内容(例如,当服务器启动时)?
顺便问一下,有没有什么方法可以直接修改这个常量而不覆盖整个方法呢?
【问题讨论】:
-
我想要一个实际的答案,发布实际代码,而不是一些伪代码(尤其是在处理一个相当知名的开源系统时。)
标签: ruby reflection runtime redmine