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
:stderr
-
Log all deprecation warnings to
$stderr
. :log
-
Log all deprecation warnings to
Rails.logger
. :notify
-
Use
ActiveSupport::Notifications
to notifydeprecation.rails
. :report
-
Use
ActiveSupport::ErrorReporter
to report deprecations. :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.
Methods
Attributes
[RW] | debug | Whether to print a backtrace along with the warning. |
Instance Public methods
behavior()
Returns the current behavior or if one isnβt set, defaults to :stderr
.
π Source code
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 74
def behavior
@behavior ||= [DEFAULT_BEHAVIORS[:stderr]]
end
π See on GitHub
behavior=(behavior)
Sets the behavior to the specified value. Can be a single value, array, or an object that responds to call
.
Available behaviors:
:raise
:stderr
-
Log all deprecation warnings to
$stderr
. :log
-
Log all deprecation warnings to
Rails.logger
. :notify
-
Use
ActiveSupport::Notifications
to notifydeprecation.rails
. :report
-
Use
ActiveSupport::ErrorReporter
to report deprecations. :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.
deprecator = ActiveSupport::Deprecation.new
deprecator.behavior = :stderr
deprecator.behavior = [:stderr, :log]
deprecator.behavior = MyCustomHandler
deprecator.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.
π Source code
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 111
def behavior=(behavior)
@behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) }
end
π See on GitHub
disallowed_behavior()
Returns the current behavior for disallowed deprecations or if one isnβt set, defaults to :raise
.
π Source code
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 79
def disallowed_behavior
@disallowed_behavior ||= [DEFAULT_BEHAVIORS[:raise]]
end
π See on GitHub
disallowed_behavior=(behavior)
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
.
π Source code
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 119
def disallowed_behavior=(behavior)
@disallowed_behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) }
end
π See on GitHub