Class: ActiveSupport::Deprecation
| Relationships & Source Files | |
| Namespace Children | |
| Modules: | |
| Classes: | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Instance Chain: | |
| Inherits: | Object | 
| Defined in: | activesupport/lib/active_support/deprecation.rb, activesupport/lib/active_support/deprecation/behaviors.rb, activesupport/lib/active_support/deprecation/constant_accessor.rb, activesupport/lib/active_support/deprecation/deprecators.rb, activesupport/lib/active_support/deprecation/disallowed.rb, activesupport/lib/active_support/deprecation/method_wrappers.rb, activesupport/lib/active_support/deprecation/proxy_wrappers.rb, activesupport/lib/active_support/deprecation/reporting.rb | 
Overview
Deprecation specifies the API used by Rails to deprecate methods, instance variables, objects, and constants. It’s also available for gems or applications.
For a gem, use .new to create a Deprecation object and store it in your module or class (in order for users to be able to configure it).
module MyLibrary
  def self.deprecator
    @deprecator ||= ActiveSupport::Deprecation.new("2.0", "MyLibrary")
  end
endFor a Railtie or Engine, you may also want to add it to the application’s deprecators, so that the application’s configuration can be applied to it.
module MyLibrary
  class Railtie < Rails::Railtie
    initializer "my_library.deprecator" do |app|
      app.deprecators[:my_library] = MyLibrary.deprecator
    end
  end
endWith the above initializer, configuration settings like the following will affect MyLibrary.deprecator:
# in config/environments/test.rb
config.active_support.deprecation = :raiseConstant Summary
- 
    DEFAULT_BEHAVIORS =
    # File 'activesupport/lib/active_support/deprecation/behaviors.rb', line 13Default warning behaviors per Rails.env. { raise: ->(, callstack, deprecator) do e = DeprecationException.new() e.set_backtrace(callstack.map(&:to_s)) raise e end, stderr: ->(, callstack, deprecator) do $stderr.puts() $stderr.puts callstack.join("\n ") if deprecator.debug end, log: ->(, callstack, deprecator) do logger = if defined?(Rails.logger) && Rails.logger Rails.logger else require "active_support/logger" ActiveSupport::Logger.new($stderr) end logger.warn logger.debug callstack.join("\n ") if deprecator.debug end, notify: ->(, callstack, deprecator) do ActiveSupport::Notifications.instrument( "deprecation.#{deprecator.gem_name.underscore.tr("/", "_")}", message: , callstack: callstack, gem_name: deprecator.gem_name, deprecation_horizon: deprecator.deprecation_horizon, ) end, silence: ->(, callstack, deprecator) { }, report: ->(, callstack, deprecator) do error = DeprecationException.new() error.set_backtrace(callstack.map(&:to_s)) ActiveSupport.error_reporter.report(error) end }
Class Method Summary
- 
    
      .new(deprecation_horizon = "8.0", gem_name = "Rails")  ⇒ Deprecation 
    
    constructor
    It accepts two parameters on initialization. 
Instance Attribute Summary
- 
    
      #deprecation_horizon  
    
    rw
    The version number in which the deprecated behavior will be removed, by default. 
Disallowed - Included
| #disallowed_warnings | Returns the configured criteria used to identify deprecation messages which should be treated as disallowed. | 
| #disallowed_warnings= | Sets the criteria used to identify deprecation messages which should be disallowed. | 
Reporting - Included
| #gem_name | Name of gem where method is deprecated. | 
| #silenced, | |
| #silenced= | Whether to print a message (silent mode). | 
Behavior - Included
| #behavior | Returns the current behavior or if one isn’t set, defaults to  | 
| #behavior= | Sets the behavior to the specified value. | 
| #debug | Whether to print a backtrace along with the warning. | 
| #disallowed_behavior | Returns the current behavior for disallowed deprecations or if one isn’t set, defaults to  | 
| #disallowed_behavior= | Sets the behavior for disallowed deprecations (those configured by  | 
Instance Method Summary
MethodWrapper - Included
| #deprecate_methods | Declare that a method has been deprecated. | 
Reporting - Included
| #allow | Allow previously disallowed deprecation warnings within the block. | 
| #deprecation_warning, | |
| #silence | Silence deprecation warnings within the block. | 
| #warn | Outputs a deprecation warning to the output configured by  | 
Constructor Details
    .new(deprecation_horizon = "8.0", gem_name = "Rails")  ⇒ Deprecation 
  
It accepts two parameters on initialization. The first is a version of library and the second is a library name.
ActiveSupport::Deprecation.new('2.0', 'MyLibrary')# File 'activesupport/lib/active_support/deprecation.rb', line 71
def initialize(deprecation_horizon = "8.0", gem_name = "Rails") self.gem_name = gem_name self.deprecation_horizon = deprecation_horizon # By default, warnings are not silenced and debugging is off. self.silenced = false self.debug = false @silence_counter = Concurrent::ThreadLocalVar.new(0) @explicitly_allowed_warnings = Concurrent::ThreadLocalVar.new(nil) end
Instance Attribute Details
#deprecation_horizon (rw)
The version number in which the deprecated behavior will be removed, by default.
# File 'activesupport/lib/active_support/deprecation.rb', line 65
attr_accessor :deprecation_horizon