Module: ActiveSupport::Deprecation::Behavior
- Included in:
 - ActiveSupport::Deprecation
 
- Defined in:
 - 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. :report- 
Use ActiveSupport::ErrorReporter to 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 collapse
- 
  
    
      #debug  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Whether to print a backtrace along with the warning.
 
Instance Method Summary collapse
- 
  
    
      #behavior  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the current behavior or if one isn’t set, defaults to
:stderr. - 
  
    
      #behavior=(behavior)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Sets the behavior to the specified value.
 - 
  
    
      #disallowed_behavior  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the current behavior for disallowed deprecations or if one isn’t set, defaults to
:raise. - 
  
    
      #disallowed_behavior=(behavior)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Sets the behavior for disallowed deprecations (those configured by ActiveSupport::Deprecation#disallowed_warnings=) to the specified value.
 
Instance Attribute Details
#debug ⇒ Object
Whether to print a backtrace along with the warning.
      71 72 73  | 
    
      # File 'lib/active_support/deprecation/behaviors.rb', line 71 def debug @debug end  | 
  
Instance Method Details
#behavior ⇒ Object
Returns the current behavior or if one isn’t set, defaults to :stderr.
      74 75 76  | 
    
      # File 'lib/active_support/deprecation/behaviors.rb', line 74 def behavior @behavior ||= [DEFAULT_BEHAVIORS[:stderr]] end  | 
  
#behavior=(behavior) ⇒ Object
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. :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 = ->(, 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.
      111 112 113  | 
    
      # File 'lib/active_support/deprecation/behaviors.rb', line 111 def behavior=(behavior) @behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) } end  | 
  
#disallowed_behavior ⇒ Object
Returns the current behavior for disallowed deprecations or if one isn’t set, defaults to :raise.
      79 80 81  | 
    
      # File 'lib/active_support/deprecation/behaviors.rb', line 79 def disallowed_behavior @disallowed_behavior ||= [DEFAULT_BEHAVIORS[:raise]] end  | 
  
#disallowed_behavior=(behavior) ⇒ Object
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.
      119 120 121  | 
    
      # File '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  |