2017-07-09 08:06:36 -04:00
|
|
|
# frozen_string_literal: true
|
2017-07-10 09:39:13 -04:00
|
|
|
|
2016-08-06 11:58:50 -04:00
|
|
|
require "singleton"
|
2006-09-03 23:32:22 -04:00
|
|
|
|
2006-07-26 20:10:06 -04:00
|
|
|
module ActiveSupport
|
2012-09-13 13:02:18 -04:00
|
|
|
# \Deprecation specifies the API used by Rails to deprecate methods, instance
|
|
|
|
# variables, objects and constants.
|
2012-09-13 02:38:34 -04:00
|
|
|
class Deprecation
|
2012-10-07 05:50:50 -04:00
|
|
|
# active_support.rb sets an autoload for ActiveSupport::Deprecation.
|
|
|
|
#
|
|
|
|
# If these requires were at the top of the file the constant would not be
|
|
|
|
# defined by the time their files were loaded. Since some of them reopen
|
|
|
|
# ActiveSupport::Deprecation its autoload would be triggered, resulting in
|
|
|
|
# a circular require warning for active_support/deprecation.rb.
|
|
|
|
#
|
|
|
|
# So, we define the constant first, and load dependencies later.
|
2017-10-21 09:11:29 -04:00
|
|
|
require "active_support/deprecation/instance_delegator"
|
|
|
|
require "active_support/deprecation/behaviors"
|
|
|
|
require "active_support/deprecation/reporting"
|
2019-11-07 08:30:18 -05:00
|
|
|
require "active_support/deprecation/disallowed"
|
2017-10-21 09:11:29 -04:00
|
|
|
require "active_support/deprecation/constant_accessor"
|
|
|
|
require "active_support/deprecation/method_wrappers"
|
|
|
|
require "active_support/deprecation/proxy_wrappers"
|
|
|
|
require "active_support/core_ext/module/deprecation"
|
2019-11-13 10:12:15 -05:00
|
|
|
require "concurrent/atomic/thread_local_var"
|
2012-09-15 04:13:58 -04:00
|
|
|
|
2012-09-13 02:38:34 -04:00
|
|
|
include Singleton
|
|
|
|
include InstanceDelegator
|
|
|
|
include Behavior
|
|
|
|
include Reporting
|
2019-11-07 08:30:18 -05:00
|
|
|
include Disallowed
|
2012-09-13 02:38:34 -04:00
|
|
|
include MethodWrapper
|
|
|
|
|
2013-06-27 06:55:52 -04:00
|
|
|
# The version number in which the deprecated behavior will be removed, by default.
|
2012-09-13 02:38:34 -04:00
|
|
|
attr_accessor :deprecation_horizon
|
2006-08-01 07:12:38 -04:00
|
|
|
|
2013-06-27 06:55:52 -04:00
|
|
|
# It accepts two parameters on initialization. The first is a version of library
|
2017-04-19 14:50:25 -04:00
|
|
|
# and the second is a library name.
|
2012-09-13 02:38:34 -04:00
|
|
|
#
|
|
|
|
# ActiveSupport::Deprecation.new('2.0', 'MyLibrary')
|
2021-02-04 11:46:53 -05:00
|
|
|
def initialize(deprecation_horizon = "7.1", gem_name = "Rails")
|
2012-09-13 02:38:34 -04:00
|
|
|
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
|
2019-10-25 18:53:03 -04:00
|
|
|
@silenced_thread = Concurrent::ThreadLocalVar.new(false)
|
2019-11-07 08:30:18 -05:00
|
|
|
@explicitly_allowed_warnings = Concurrent::ThreadLocalVar.new(nil)
|
2012-09-13 02:38:34 -04:00
|
|
|
end
|
2006-07-26 20:10:06 -04:00
|
|
|
end
|
2011-07-25 15:05:06 -04:00
|
|
|
end
|