Направляющие пользовательские уведомления депрекации

Существует ли способ создать пользовательские уведомления депрекации для методов и/или ассоциаций в моем приложении, которое я планирую на удалении и хочу зарегистрировать их использование? У меня есть отношения в одной из моих моделей, что я не хочу использовать продвижение и планировать осуществить рефакторинг код в более позднее время. Я хотел бы создать уведомление в своем журнале разработки каждый раз, когда метод называют.

Я видел уведомления депрекации в Ruby/направляющих при использовании определенных методов и числа, там должен быть простой способ сделать это.

Что-то как...

irb(main):001:0> 1.id
(irb):1: warning: Object#id will be deprecated; use Object#object_id
=> 3
24
задан Peter Brown 17 February 2010 в 20:42
поделиться

2 ответа

В большинстве случаев вы можете просто вызвать предупреждение и вызвать новый метод.

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

Существуют библиотеки или метапрограммирование, если вам нужно или вы хотите стать более интересным, но в целом это не лучший путь для чего-то столь простого. У вас должна быть веская причина ввести зависимость для чего-то такого простого.

2
ответ дан 28 November 2019 в 23:10
поделиться

Возможно:

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

Что-то в этом роде для связи.

6
ответ дан 28 November 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: