使用ActiveSupport :: Deprecation标记已弃用的方法

时间:2011-05-13 15:03:32

标签: ruby-on-rails ruby deprecated activesupport

this question中解释了如何做一个简单的警告(但是没有记录跟踪所以没有那么有用)并且有很多方法可以做到这一点,但我找不到任何指南。

如何使用ActiveSupport :: Deprecation将old_method标记为已弃用并调用其他new_method。

2 个答案:

答案 0 :(得分:0)

您可能需要查看lib/active_support/deprecation/method_wrappers.rb示例。

答案 1 :(得分:0)

正如Roman所说,它可以完成     ActiveSupport :: Deprecation.deprecate_methods(target_module,* deprecated_methods)

其中:

  • target_module是方法所属的模块或类。
  • deprecated_methods是一个符号数组。

在最后的方法中,可以给出自定义弃用消息的选项。

ActiveSupport::Deprecation.deprecate_methods(target_module, :old_method, \
    :other_old_method => :new_method, :another_old_method => "custom message")

此示例显示调用old_method时的默认消息,在第二个中为“使用new_method而不是”发出注释,并在另一个中给出自定义消息:

注释:应该定义(之前)已弃用的方法并执行。 :new_method自动调用。 (有更多的选择,但我不知道)