123456789_123456789_123456789_123456789_123456789_

Class: ActiveSupport::Deprecation

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

Constant Summary

Reporting - Included

LIB_DIR, RAILS_GEM_ROOT

Class Method Summary

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 :stderr.

#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 :raise.

#disallowed_behavior=

Sets the behavior for disallowed deprecations (those configured by ActiveSupport::Deprecation#disallowed_warnings=) to the specified value.

Instance Method Summary

MethodWrapper - Included

#deprecate_methods

Declare that a method has been deprecated.

Disallowed - Included

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 ActiveSupport::Deprecation#behavior.

#deprecated_method_warning

Outputs a deprecation warning message.

#deprecation_caller_message, #deprecation_message, #extract_callstack, #ignored_callstack?, #begin_silence, #end_silence

Behavior - Included

Constructor Details

.new(deprecation_horizon = "8.2", 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')
[ 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

Class Method Details

._instance

This method is for internal use only.
[ GitHub ]

  
# File 'activesupport/lib/active_support/deprecation.rb', line 60

def self._instance # :nodoc:
  @_instance ||= MUTEX.synchronize { @_instance ||= new }
end

Instance Attribute Details

#deprecation_horizon (rw)

The version number in which the deprecated behavior will be removed, by default.

[ GitHub ]

  
# File 'activesupport/lib/active_support/deprecation.rb', line 65

attr_accessor :deprecation_horizon