Ruby on Rails: обрабатывать предупреждения об устаревании как ошибки или иным образом находить устаревший код?
Недавно я обновился с Rails 2 до Rails 3, и я пытаюсь искоренить весь код, который у меня может быть, который устарел. То, как я это делаю, просто просматривает копию моего сайта, работающего на машине разработки, и просматривает вывод из консоли для предупреждений.
Есть ли способ заставить Rails обрабатывать предупреждения об устаревании как ошибки или иначе более эффективно использовать устаревший код?
Ответы
Ответ 1
Вы можете настроить поведение устаревших вызовов, установив ActiveSupport::Deprecation.behavior
. Это должно быть установлено на Proc
, которое принимает сообщение и стоп-код, например. вы можете сделать:
ActiveSupport::Deprecation.behavior = Proc.new { |message, callstack|
raise message + "\n" + callstack.join("\n ")
}
Если у вас есть автоматические тесты для вашего приложения, они неоценимы при обновлении версии Rails.