使用 ActiveSupport::Deprecation 标记已弃用的方法
在这个问题中解释了如何做一个简单的警告(但不记录跟踪,所以不是很有用)并且有很多方法可以实现此目的,但我没有找到任何指南。
如何使用 ActiveSupport::Deprecation 将 old_method 标记为已弃用并调用其他 new_method。
In this question is explained what to do to make a simple warning (but do not log trace so is not so useful) and there is a bunch of methods to make this, but I found no guides.
How do I use ActiveSupport::Deprecation to mark a old_method as deprecated and call other new_method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能需要查看 lib/active_support/deprecation/method_wrappers.rb 示例。
You may want to look into
lib/active_support/deprecation/method_wrappers.rb
for an example.正如 Roman 所说,可以通过
ActiveSupport::Deprecation.deprecate_methods(target_module, *deprecated_methods)
其中:
target_module
是该方法所属的模块或类。deprecated_methods
是一个符号数组。在最后一个方法中,可以提供自定义弃用消息的选项。
此示例显示调用 old_method 时的默认消息,在第二个示例中添加注释“使用 new_method 代替”,以及带有 :another_old_method 的自定义消息。
注意:不推荐使用的方法应该被定义(之前)并且将被执行。 :new_method 不会自动调用。 (还有更多选择,但我不知道)
As Roman says, it can be done with
ActiveSupport::Deprecation.deprecate_methods(target_module, *deprecated_methods)
where:
target_module
is the module or class where the method belongs.deprecated_methods
is an array of symbols.In the last methods can be given options to customize the deprecation message.
This example shows the default message when old_method is called, give a comment to "use new_method instead", in the second one, and the custom message with :another_old_method.
Notes: The deprecated methods should be defined (before) and will be executed. The :new_method is not called automatically. (there are more options, but I don't know them)