Pet*_*own 24 ruby logging ruby-on-rails deprecated
有没有办法为我计划删除并希望记录其用法的应用程序中的方法和/或关联创建自定义弃用通知?我在我的一个模型中有一个关系,我不想继续前进并计划稍后重构代码.我想在每次调用该方法时在我的开发日志中创建一个通知.
我在使用某些方法时已经看到Ruby/Rails中的弃用通知,并且必须有一个简单的方法来执行此操作.
就像是...
irb(main):001:0> 1.id
(irb):1: warning: Object#id will be deprecated; use Object#object_id
=> 3
Run Code Online (Sandbox Code Playgroud)
Eug*_*kov 42
在Rails 3中,您可以使用ActiveSupport中的"deprecate"方法:
class Example
def foo
end
deprecate :foo
end
Run Code Online (Sandbox Code Playgroud)
它将为您的方法创建一个别名,并输出一个带有堆栈跟踪的警告.您也可以直接使用此功能的一部分,例如:
ActiveSupport::Deprecation.warn("Message")
Run Code Online (Sandbox Code Playgroud)
它将输出堆栈跟踪以及消息.
也许:
def old_relationship
warn "[DEPRECATION] old_relationship is deprecated."
@old_relationship
end
def old_relationship=(object)
warn "[DEPRECATION] old_relationship is deprecated."
@old_relationship = object
end
Run Code Online (Sandbox Code Playgroud)
这种关系的某些方面.