Behavior
module allows to determine how to display deprecation messages. You can create a custom behavior or set any from the DEFAULT_BEHAVIORS
constant. Available behaviors are:
raise
Raise ActiveSupport::DeprecationException
.
stderr
Log all deprecation warnings to $stderr
.
log
Log all deprecation warnings to Rails.logger
.
notify
Use ActiveSupport::Notifications
to notify deprecation.rails
.
silence
Do nothing. On Rails, set config.active_support.report_deprecations = false
to disable all behaviors.
Setting behaviors only affects deprecations that happen after boot time. For more information you can read the documentation of the behavior=
method.
Whether to print a backtrace along with the warning.
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 66 def behavior @behavior ||= [DEFAULT_BEHAVIORS[:stderr]] end
Returns the current behavior or if one isn't set, defaults to :stderr
.
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 99 def behavior=(behavior) @behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) } end
Sets the behavior to the specified value. Can be a single value, array, or an object that responds to call
.
Available behaviors:
raise
Raise ActiveSupport::DeprecationException
.
stderr
Log all deprecation warnings to $stderr
.
log
Log all deprecation warnings to Rails.logger
.
notify
Use ActiveSupport::Notifications
to notify deprecation.rails
.
silence
Do nothing.
Setting behaviors only affects deprecations that happen after boot time. Deprecation
warnings raised by gems are not affected by this setting because they happen before Rails boots up.
ActiveSupport::Deprecation.behavior = :stderr ActiveSupport::Deprecation.behavior = [:stderr, :log] ActiveSupport::Deprecation.behavior = MyCustomHandler ActiveSupport::Deprecation.behavior = ->(message, callstack, deprecation_horizon, gem_name) { # custom stuff }
If you are using Rails, you can set config.active_support.report_deprecations = false
to disable all deprecation behaviors. This is similar to the silence
option but more performant.
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 71 def disallowed_behavior @disallowed_behavior ||= [DEFAULT_BEHAVIORS[:raise]] end
Returns the current behavior for disallowed deprecations or if one isn't set, defaults to :raise
.
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 107 def disallowed_behavior=(behavior) @disallowed_behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) } end
Sets the behavior for disallowed deprecations (those configured by ActiveSupport::Deprecation.disallowed_warnings=
) to the specified value. As with behavior=
, this can be a single value, array, or an object that responds to call
.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.