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
- :stderr
- 
Log all deprecation warnings to $stderr.
- :log
- 
Log all deprecation warnings to Rails.logger. 
- :notify
- 
Use ::ActiveSupport::Notificationsto notifydeprecation.rails.
- :report
- 
Use ::ActiveSupport::ErrorReporterto report deprecations.
- :silence
- 
Do nothing. On Rails, set config.active_support.report_deprecations = falseto 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.
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.
# File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 74
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
- :stderr
- 
Log all deprecation warnings to $stderr.
- :log
- 
Log all deprecation warnings to Rails.logger. 
- :notify
- 
Use ::ActiveSupport::Notificationsto notifydeprecation.rails.
- :report
- 
Use ::ActiveSupport::ErrorReporterto report deprecations.
- :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.
deprecator = ActiveSupport::Deprecation.new
deprecator.behavior = :stderr
deprecator.behavior = [:stderr, :log]
deprecator.behavior = MyCustomHandler
deprecator.behavior = ->(, 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 111
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.
# File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 71
attr_accessor :debug
#disallowed_behavior (rw)
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 79
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.
# 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