Отметить устаревший метод, использующий ActiveSupport :: Deprecation - PullRequest
2 голосов
/ 13 мая 2011

В этот вопрос объясняется, что нужно сделать, чтобы сделать простое предупреждение (но не регистрировать трассировку, так что это не очень полезно), и есть множество способов сделать это, но я не нашел руководств.

Как использовать ActiveSupport :: Deprecation, чтобы пометить old_method как устаревший и вызвать другой метод new_method.

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Как говорит Роман , это можно сделать с помощью 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», во втором и пользовательское сообщение с: another_old_method.

Примечания : устаревшие методы должны быть определены (до) и будут выполнены. Параметр: new_method не вызывается автоматически. (есть еще варианты, но я их не знаю)

0 голосов
/ 15 мая 2011

Вы можете посмотреть на lib/active_support/deprecation/method_wrappers.rb для примера.

...