class ActiveSupport::Deprecation 
        Active Support Deprecation
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 Deprecation.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
end
For 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
end
With the above initializer, configuration settings like the following will affect MyLibrary.deprecator:
# in config/environments/test.rb
config.active_support.deprecation = :raise
    Inherits From
- 
          module
          
ActiveSupport::Deprecation:: Behavior  - 
          module
          
ActiveSupport::Deprecation:: Reporting  - 
          module
          
ActiveSupport::Deprecation:: Disallowed  - 
          module
          
ActiveSupport::Deprecation:: MethodWrapper  
Constants
Default warning behaviors per Rails.env.
{
raise: ->(message, callstack, deprecator) do
e = DeprecationException.new(message)
e.set_backtrace(callstack.map(&:to_s))
raise e
end,
stderr: ->(message, callstack, deprecator) do
$stderr.puts(message)
$stderr.puts callstack.join("\n  ") if deprecator.debug
end,
log: ->(message, callstack, deprecator) do
logger =
if defined?(Rails.logger) && Rails.logger
Rails.logger
else
require "active_support/logger"
ActiveSupport::Logger.new($stderr)
end
logger.warn message
logger.debug callstack.join("\n  ") if deprecator.debug
end,
notify: ->(message, callstack, deprecator) do
ActiveSupport::Notifications.instrument(
"deprecation.#{deprecator.gem_name.underscore.tr("/", "_")}",
message: message,
callstack: callstack,
gem_name: deprecator.gem_name,
deprecation_horizon: deprecator.deprecation_horizon,
)
end,
silence: ->(message, callstack, deprecator) { },
report: ->(message, callstack, deprecator) do
error = DeprecationException.new(message)
error.set_backtrace(callstack.map(&:to_s))
ActiveSupport.error_reporter.report(error)
end
}
          Attributes
| [RW] | deprecation_horizon | 
            The version number in which the deprecated behavior will be removed, by default.  | 
          
Public class methods
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')
Source code GitHub
# File activesupport/lib/active_support/deprecation.rb, line 71
def initialize(deprecation_horizon = "8.2", 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
            Namespace
ActiveSupport::Deprecation:: Behavior ActiveSupport::Deprecation:: DeprecatedConstantAccessor ActiveSupport::Deprecation:: DeprecatedConstantProxy ActiveSupport::Deprecation:: DeprecatedInstanceVariableProxy ActiveSupport::Deprecation:: DeprecatedObjectProxy ActiveSupport::Deprecation:: Deprecators ActiveSupport::Deprecation:: Disallowed ActiveSupport::Deprecation:: MethodWrapper ActiveSupport::Deprecation:: Reporting 
Definition files
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