Class: ActiveSupport::Deprecation

Inherits:
Object
  • Object
show all
Includes:
Behavior, InstanceDelegator, MethodWrapper, Reporting, Singleton
Defined in:
lib/active_support/deprecation.rb,
lib/active_support/deprecation/behaviors.rb,
lib/active_support/deprecation/reporting.rb,
lib/active_support/deprecation/proxy_wrappers.rb,
lib/active_support/deprecation/method_wrappers.rb,
lib/active_support/deprecation/instance_delegator.rb

Overview

Deprecation specifies the API used by Rails to deprecate methods, instance variables, objects and constants.

Defined Under Namespace

Modules: Behavior, InstanceDelegator, MethodWrapper, Reporting Classes: DeprecatedConstantProxy, DeprecatedInstanceVariableProxy, DeprecatedObjectProxy, DeprecationProxy

Constant Summary collapse

DEFAULT_BEHAVIORS =

Default warning behaviors per Rails.env.

{
  raise: ->(message, callstack) {
    e = DeprecationException.new(message)
    e.set_backtrace(callstack)
    raise e
  },

  stderr: ->(message, callstack) {
    $stderr.puts(message)
    $stderr.puts callstack.join("\n  ") if debug
  },
  
  log: ->(message, callstack) {
    logger =
        if defined?(Rails) && Rails.logger
          Rails.logger
        else
          require 'active_support/logger'
          ActiveSupport::Logger.new($stderr)
        end
    logger.warn message
    logger.debug callstack.join("\n  ") if debug
  },
  
  notify: ->(message, callstack) {
    ActiveSupport::Notifications.instrument("deprecation.rails",
                                            :message => message, :callstack => callstack)
  },
  
  silence: ->(message, callstack) {},
}

Instance Attribute Summary collapse

Attributes included from Reporting

#gem_name, #silenced

Attributes included from Behavior

#debug

Instance Method Summary collapse

Methods included from MethodWrapper

#deprecate_methods

Methods included from Reporting

#deprecation_warning, #silence, #warn

Methods included from Behavior

#behavior, #behavior=

Methods included from InstanceDelegator

included

Constructor Details

#initialize(deprecation_horizon = '4.1', gem_name = 'Rails') ⇒ Deprecation

It accepts two parameters on initialization. The first is an version of library and the second is an library name

ActiveSupport::Deprecation.new('2.0', 'MyLibrary')


35
36
37
38
39
40
41
# File 'lib/active_support/deprecation.rb', line 35

def initialize(deprecation_horizon = '4.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
end

Instance Attribute Details

#deprecation_horizonObject

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



29
30
31
# File 'lib/active_support/deprecation.rb', line 29

def deprecation_horizon
  @deprecation_horizon
end