lib/active_support/deprecation.rb in activesupport-7.1.5 vs lib/active_support/deprecation.rb in activesupport-7.2.0.beta1
- old
+ new
@@ -1,9 +1,7 @@
# frozen_string_literal: true
-require "singleton"
-
module ActiveSupport
# = 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.
@@ -39,34 +37,39 @@
# 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.
- require "active_support/deprecation/instance_delegator"
require "active_support/deprecation/behaviors"
require "active_support/deprecation/reporting"
require "active_support/deprecation/disallowed"
require "active_support/deprecation/constant_accessor"
require "active_support/deprecation/method_wrappers"
require "active_support/deprecation/proxy_wrappers"
require "active_support/deprecation/deprecators"
require "active_support/core_ext/module/deprecation"
require "concurrent/atomic/thread_local_var"
- include InstanceDelegator
include Behavior
include Reporting
include Disallowed
include MethodWrapper
+ MUTEX = Mutex.new # :nodoc:
+ private_constant :MUTEX
+
+ def self._instance # :nodoc:
+ @_instance ||= MUTEX.synchronize { @_instance ||= new }
+ end
+
# The version number in which the deprecated behavior will be removed, by default.
attr_accessor :deprecation_horizon
# 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')
- def initialize(deprecation_horizon = "7.2", gem_name = "Rails")
+ def initialize(deprecation_horizon = "7.3", 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