我目前正在为 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 的核心。所以,我正在编写一个插件,用我自己的实现替换这个方法,它做同样的事情,但是三个变成了六个。
问题在于:如果此文件更新,将使用过时的方法。有没有办法在运行时检查方法内部写的内容(例如,当服务器启动时)?
顺便问一下,有没有什么方法可以直接修改这个常量而不覆盖整个方法?