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
Constants
- DEFAULT_BEHAVIORS
Default warning behaviors per Rails.env.
Attributes
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')
# File lib/active_support/deprecation.rb, line 71 def initialize(deprecation_horizon = "8.1", 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