Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby on Rails: Treat deprecation warnings as errors or otherwise find deprecated code?

I recently upgraded from Rails 2 to Rails 3, and I'm trying to root out all the code I might have that is deprecated. The way I'm doing this is just surfing around a copy of my site running on a development machine, and peering at the output from the console for warnings.

Is there a way to cause Rails to treat deprecation warnings as errors or otherwise find deprecated code more efficiently?

like image 750
William Jones Avatar asked Jan 10 '11 15:01

William Jones


1 Answers

You can customise the behaviour of deprecated calls by setting ActiveSupport::Deprecation.behavior. This should be set to a Proc that accepts a message and a callstack e.g. you could do:

ActiveSupport::Deprecation.behavior = Proc.new { |message, callstack|
  raise message + "\n" + callstack.join("\n  ")
}

If you have automated tests for your app these are invaluable when upgrading the version of Rails being used.

like image 166
mikej Avatar answered Jan 03 '23 16:01

mikej