Permalink
Browse files

Merge pull request #5986 from carlosantoniodasilva/deprecation-behavi…

…or-silence

Add a "silence" behavior to completely turn off deprecation warnings.
  • Loading branch information...
josevalim committed Apr 29, 2012
2 parents e73f547 + 34599c4 commit ffc861c101c3d7284a512c1ac407a4027a0f175e
@@ -1,5 +1,7 @@
## Rails 4.0.0 (unreleased) ##
+* Add ActiveSupport::Deprecations.behavior = :slience to to completely ignore *twinturbo*
+
* Make Module#delegate stop using `send` - can no longer delegate to private methods. *dasch*
* AS::Callbacks: deprecate `:rescuable` option. *Bogdan Gusiev*
@@ -13,6 +13,13 @@ def behavior
# Sets the behavior to the specified value. Can be a single value or an array.
#
+ # Available behaviors:
+ #
+ # [+:stderr+] Print deprecations to +$stderror+
+ # [+:log+] Send to +Rails.logger+
+ # [+:notify+] Instrument using +ActiveSupport::Notifications+
+ # [+:silence+] Do nothing
+ #
# Examples
#
# ActiveSupport::Deprecation.behavior = :stderr
@@ -41,8 +48,9 @@ def behavior=(behavior)
},
:notify => Proc.new { |message, callstack|
ActiveSupport::Notifications.instrument("deprecation.rails",
- :message => message, :callstack => callstack)
- }
+ :message => message, :callstack => callstack)
+ },
+ :silence => Proc.new { |message, callstack| }
}
end
end
@@ -93,6 +93,26 @@ def test_several_behaviors
assert_match(/foo=nil/, @b)
end
+ def test_default_stderr_behavior
+ ActiveSupport::Deprecation.behavior = :stderr
+ behavior = ActiveSupport::Deprecation.behavior.first
+
+ content = capture(:stderr) {
+ assert_nil behavior.call('Some error!', ['call stack!'])
+ }
+ assert_match(/Some error!/, content)
+ assert_match(/call stack!/, content)
+ end
+
+ def test_default_silence_behavior
+ ActiveSupport::Deprecation.behavior = :silence
+ behavior = ActiveSupport::Deprecation.behavior.first
+
+ assert_blank capture(:stderr) {
+ assert_nil behavior.call('Some error!', ['call stack!'])
+ }
+ end
+
def test_deprecated_instance_variable_proxy
assert_not_deprecated { @dtc.request.size }

0 comments on commit ffc861c

Please sign in to comment.