123456789_123456789_123456789_123456789_123456789_

Module: ActiveSupport::Deprecation::Behavior

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: activesupport/lib/active_support/deprecation/behaviors.rb

Overview

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.

Setting behaviors only affects deprecations that happen after boot time. For more information you can read the documentation of the #behavior= method.

Instance Attribute Summary

  • #behavior rw

    Returns the current behavior or if one isn’t set, defaults to :stderr.

  • #behavior=(behavior) rw

    Sets the behavior to the specified value.

  • #debug rw

    Whether to print a backtrace along with the warning.

  • #disallowed_behavior rw

    Returns the current behavior for disallowed deprecations or if one isn’t set, defaults to :raise.

  • #disallowed_behavior=(behavior) rw

    Sets the behavior for disallowed deprecations (those configured by ActiveSupport::Deprecation.disallowed_warnings=) to the specified value.

Instance Attribute Details

#behavior (rw)

Returns the current behavior or if one isn’t set, defaults to :stderr.

[ GitHub ]

  
# File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 66

def behavior
  @behavior ||= [DEFAULT_BEHAVIORS[:stderr]]
end

#behavior=(behavior) (rw)

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. ::ActiveSupport::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
}
[ GitHub ]

  
# File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 96

def behavior=(behavior)
  @behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) }
end

#debug (rw)

Whether to print a backtrace along with the warning.

[ GitHub ]

  
# File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 63

attr_accessor :debug

#disallowed_behavior (rw)

Returns the current behavior for disallowed deprecations or if one isn’t set, defaults to :raise.

[ GitHub ]

  
# File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 71

def disallowed_behavior
  @disallowed_behavior ||= [DEFAULT_BEHAVIORS[:raise]]
end

#disallowed_behavior=(behavior) (rw)

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.

[ GitHub ]

  
# File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 104

def disallowed_behavior=(behavior)
  @disallowed_behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) }
end