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 activesupport/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