为方法生成错误名称的模块

时间:2011-03-07 05:18:13

标签: ruby-on-rails-3

所以我有一个模块,它的一个内部方法使用名称“log”。

问题是,该模块有一个“扩展自我”行。如果我在脚本中调用此模块以及加载rails环境,则每次使用关键字“log”(即Rails.application.config.paths.log或config.paths.log)时,该模块中的方法都会得到调用而不是原始文件要查找的内容。

有没有办法做MyModule.module_eval并以某种方式重命名方法名称并将该模块中名为“log”的所有本地调用路由到新方法中?

否则Rails和这个模块不能很好地协同工作。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

找到答案。我使用module_eval

将模块内的坏方法私有化
NoSoSmartModule.module_eval do
  private :log
end