module ActiveSupport::Deprecation::Behavior
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::Notificationsto notifydeprecation.rails. silence-
Do nothing.
Setting behaviors only affects deprecations that happen after boot time. For more information you can read the documentation of the behavior= method.
Attributes
Whether to print a backtrace along with the warning.
Public Instance Methods
Returns the current behavior or if one isn’t set, defaults to :stderr.
# File lib/active_support/deprecation/behaviors.rb, line 66 def behavior @behavior ||= [DEFAULT_BEHAVIORS[:stderr]] 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::Notificationsto notifydeprecation.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 }
# File lib/active_support/deprecation/behaviors.rb, line 91 def behavior=(behavior) @behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) } end
Private Instance Methods
# File lib/active_support/deprecation/behaviors.rb, line 96 def arity_coerce(behavior) unless behavior.respond_to?(:call) raise ArgumentError, "#{behavior.inspect} is not a valid deprecation behavior." end if behavior.arity == 4 || behavior.arity == -1 behavior else -> message, callstack, _, _ { behavior.call(message, callstack) } end end