Существует ли способ создать пользовательские уведомления депрекации для методов и/или ассоциаций в моем приложении, которое я планирую на удалении и хочу зарегистрировать их использование? У меня есть отношения в одной из моих моделей, что я не хочу использовать продвижение и планировать осуществить рефакторинг код в более позднее время. Я хотел бы создать уведомление в своем журнале разработки каждый раз, когда метод называют.
Я видел уведомления депрекации в Ruby/направляющих при использовании определенных методов и числа, там должен быть простой способ сделать это.
Что-то как...
irb(main):001:0> 1.id
(irb):1: warning: Object#id will be deprecated; use Object#object_id
=> 3
В большинстве случаев вы можете просто вызвать предупреждение и вызвать новый метод.
class Example
# <b>DEPRECATED:</b> Please use <tt>good_method</tt> instead.
def bad_method
warn "`bad_method` is deprecated. Use `good_method` instead."
good_method
end
def good_method
# ...
end
end
Существуют библиотеки или метапрограммирование, если вам нужно или вы хотите стать более интересным, но в целом это не лучший путь для чего-то столь простого. У вас должна быть веская причина ввести зависимость для чего-то такого простого.
Возможно:
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
Что-то в этом роде для связи.