Deprecate ActiveSupport::Deprecation.instance
This commit is contained in:
parent
0f0aa86091
commit
c8eeac52f8
@ -22,7 +22,7 @@ def deprecate(*method_names, deprecator: nil, **options)
|
|||||||
ActiveSupport.deprecator.deprecate_methods(self, *method_names, **options, deprecator: deprecator)
|
ActiveSupport.deprecator.deprecate_methods(self, *method_names, **options, deprecator: deprecator)
|
||||||
else
|
else
|
||||||
ActiveSupport.deprecator.warn("Module.deprecate without a deprecator is deprecated")
|
ActiveSupport.deprecator.warn("Module.deprecate without a deprecator is deprecated")
|
||||||
ActiveSupport::Deprecation.instance.deprecate_methods(self, *method_names, **options)
|
ActiveSupport::Deprecation._instance.deprecate_methods(self, *method_names, **options)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -25,7 +25,7 @@ class Deprecation
|
|||||||
require "active_support/core_ext/module/deprecation"
|
require "active_support/core_ext/module/deprecation"
|
||||||
require "concurrent/atomic/thread_local_var"
|
require "concurrent/atomic/thread_local_var"
|
||||||
|
|
||||||
include Singleton
|
include Singleton # :nodoc:
|
||||||
include InstanceDelegator
|
include InstanceDelegator
|
||||||
include Behavior
|
include Behavior
|
||||||
include Reporting
|
include Reporting
|
||||||
|
@ -41,7 +41,7 @@ def const_missing(missing_const_name)
|
|||||||
|
|
||||||
def deprecate_constant(const_name, new_constant, message: nil, deprecator: nil)
|
def deprecate_constant(const_name, new_constant, message: nil, deprecator: nil)
|
||||||
ActiveSupport.deprecator.warn("DeprecatedConstantAccessor.deprecate_constant without a deprecator is deprecated") unless deprecator
|
ActiveSupport.deprecator.warn("DeprecatedConstantAccessor.deprecate_constant without a deprecator is deprecated") unless deprecator
|
||||||
deprecator ||= ActiveSupport::Deprecation.instance
|
deprecator ||= ActiveSupport::Deprecation._instance
|
||||||
class_variable_set(:@@_deprecated_constants, {}) unless class_variable_defined?(:@@_deprecated_constants)
|
class_variable_set(:@@_deprecated_constants, {}) unless class_variable_defined?(:@@_deprecated_constants)
|
||||||
class_variable_get(:@@_deprecated_constants)[const_name.to_s] = { new: new_constant, message: message, deprecator: deprecator }
|
class_variable_get(:@@_deprecated_constants)[const_name.to_s] = { new: new_constant, message: message, deprecator: deprecator }
|
||||||
end
|
end
|
||||||
|
@ -4,6 +4,7 @@ module ActiveSupport
|
|||||||
class Deprecation
|
class Deprecation
|
||||||
module InstanceDelegator # :nodoc:
|
module InstanceDelegator # :nodoc:
|
||||||
def self.included(base)
|
def self.included(base)
|
||||||
|
base.singleton_class.alias_method(:_instance, :instance)
|
||||||
base.extend(ClassMethods)
|
base.extend(ClassMethods)
|
||||||
base.singleton_class.prepend(OverrideDelegators)
|
base.singleton_class.prepend(OverrideDelegators)
|
||||||
base.public_class_method :new
|
base.public_class_method :new
|
||||||
@ -19,7 +20,7 @@ def method_added(method_name)
|
|||||||
use_instead =
|
use_instead =
|
||||||
case method_name
|
case method_name
|
||||||
when :silence, :behavior=, :disallowed_behavior=, :disallowed_warnings=, :silenced=, :debug=
|
when :silence, :behavior=, :disallowed_behavior=, :disallowed_warnings=, :silenced=, :debug=
|
||||||
target = "(defined?(Rails.application.deprecators) ? Rails.application.deprecators : ActiveSupport::Deprecation.instance)"
|
target = "(defined?(Rails.application.deprecators) ? Rails.application.deprecators : ActiveSupport::Deprecation._instance)"
|
||||||
"Rails.application.deprecators.#{method_name}"
|
"Rails.application.deprecators.#{method_name}"
|
||||||
when :warn, :deprecate_methods, :gem_name, :gem_name=, :deprecation_horizon, :deprecation_horizon=
|
when :warn, :deprecate_methods, :gem_name, :gem_name=, :deprecation_horizon, :deprecation_horizon=
|
||||||
"your own Deprecation object"
|
"your own Deprecation object"
|
||||||
@ -27,7 +28,7 @@ def method_added(method_name)
|
|||||||
"Rails.application.deprecators[framework].#{method_name} where framework is for example :active_record"
|
"Rails.application.deprecators[framework].#{method_name} where framework is for example :active_record"
|
||||||
end
|
end
|
||||||
args = /[^\]]=\z/.match?(method_name) ? "arg" : "..."
|
args = /[^\]]=\z/.match?(method_name) ? "arg" : "..."
|
||||||
target ||= "ActiveSupport::Deprecation.instance"
|
target ||= "ActiveSupport::Deprecation._instance"
|
||||||
singleton_class.module_eval <<~RUBY, __FILE__, __LINE__ + 1
|
singleton_class.module_eval <<~RUBY, __FILE__, __LINE__ + 1
|
||||||
def #{method_name}(#{args})
|
def #{method_name}(#{args})
|
||||||
#{target}.#{method_name}(#{args})
|
#{target}.#{method_name}(#{args})
|
||||||
@ -36,6 +37,11 @@ def #{method_name}(#{args})
|
|||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def instance
|
||||||
|
ActiveSupport.deprecator.warn("ActiveSupport::Deprecation.instance is deprecated (use your own Deprecation object)")
|
||||||
|
super
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
module OverrideDelegators # :nodoc:
|
module OverrideDelegators # :nodoc:
|
||||||
|
@ -40,7 +40,7 @@ def initialize(object, message, deprecator = nil)
|
|||||||
@object = object
|
@object = object
|
||||||
@message = message
|
@message = message
|
||||||
ActiveSupport.deprecator.warn("DeprecatedObjectProxy without a deprecator is deprecated") unless deprecator
|
ActiveSupport.deprecator.warn("DeprecatedObjectProxy without a deprecator is deprecated") unless deprecator
|
||||||
@deprecator = deprecator || ActiveSupport::Deprecation.instance
|
@deprecator = deprecator || ActiveSupport::Deprecation._instance
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -91,7 +91,7 @@ def initialize(instance, method, var = "@#{method}", deprecator = nil)
|
|||||||
@method = method
|
@method = method
|
||||||
@var = var
|
@var = var
|
||||||
ActiveSupport.deprecator.warn("DeprecatedInstanceVariableProxy without a deprecator is deprecated") unless deprecator
|
ActiveSupport.deprecator.warn("DeprecatedInstanceVariableProxy without a deprecator is deprecated") unless deprecator
|
||||||
@deprecator = deprecator || ActiveSupport::Deprecation.instance
|
@deprecator = deprecator || ActiveSupport::Deprecation._instance
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -133,7 +133,7 @@ def initialize(old_const, new_const, deprecator = nil, message: "#{old_const} is
|
|||||||
@old_const = old_const
|
@old_const = old_const
|
||||||
@new_const = new_const
|
@new_const = new_const
|
||||||
ActiveSupport.deprecator.warn("DeprecatedConstantProxy without a deprecator is deprecated") unless deprecator
|
ActiveSupport.deprecator.warn("DeprecatedConstantProxy without a deprecator is deprecated") unless deprecator
|
||||||
@deprecator = deprecator || ActiveSupport::Deprecation.instance
|
@deprecator = deprecator || ActiveSupport::Deprecation._instance
|
||||||
@message = message
|
@message = message
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ def assert_deprecated(match = nil, deprecator = nil, &block)
|
|||||||
match, deprecator = nil, match if match.is_a?(ActiveSupport::Deprecation)
|
match, deprecator = nil, match if match.is_a?(ActiveSupport::Deprecation)
|
||||||
unless deprecator
|
unless deprecator
|
||||||
ActiveSupport.deprecator.warn("assert_deprecated without a deprecator is deprecated")
|
ActiveSupport.deprecator.warn("assert_deprecated without a deprecator is deprecated")
|
||||||
deprecator = ActiveSupport::Deprecation.instance
|
deprecator = ActiveSupport::Deprecation._instance
|
||||||
end
|
end
|
||||||
result, warnings = collect_deprecations(deprecator, &block)
|
result, warnings = collect_deprecations(deprecator, &block)
|
||||||
assert !warnings.empty?, "Expected a deprecation warning within the block but received none"
|
assert !warnings.empty?, "Expected a deprecation warning within the block but received none"
|
||||||
@ -54,7 +54,7 @@ def assert_deprecated(match = nil, deprecator = nil, &block)
|
|||||||
def assert_not_deprecated(deprecator = nil, &block)
|
def assert_not_deprecated(deprecator = nil, &block)
|
||||||
unless deprecator
|
unless deprecator
|
||||||
ActiveSupport.deprecator.warn("assert_not_deprecated without a deprecator is deprecated")
|
ActiveSupport.deprecator.warn("assert_not_deprecated without a deprecator is deprecated")
|
||||||
deprecator = ActiveSupport::Deprecation.instance
|
deprecator = ActiveSupport::Deprecation._instance
|
||||||
end
|
end
|
||||||
result, deprecations = collect_deprecations(deprecator, &block)
|
result, deprecations = collect_deprecations(deprecator, &block)
|
||||||
assert deprecations.empty?, "Expected no deprecation warning within the block but received #{deprecations.size}: \n #{deprecations * "\n "}"
|
assert deprecations.empty?, "Expected no deprecation warning within the block but received #{deprecations.size}: \n #{deprecations * "\n "}"
|
||||||
@ -72,7 +72,7 @@ def assert_not_deprecated(deprecator = nil, &block)
|
|||||||
def collect_deprecations(deprecator = nil)
|
def collect_deprecations(deprecator = nil)
|
||||||
unless deprecator
|
unless deprecator
|
||||||
ActiveSupport.deprecator.warn("collect_deprecations without a deprecator is deprecated")
|
ActiveSupport.deprecator.warn("collect_deprecations without a deprecator is deprecated")
|
||||||
deprecator = ActiveSupport::Deprecation.instance
|
deprecator = ActiveSupport::Deprecation._instance
|
||||||
end
|
end
|
||||||
old_behavior = deprecator.behavior
|
old_behavior = deprecator.behavior
|
||||||
deprecations = []
|
deprecations = []
|
||||||
|
@ -42,7 +42,7 @@ def setup
|
|||||||
test "assert_deprecated is deprecated without a deprecator" do
|
test "assert_deprecated is deprecated without a deprecator" do
|
||||||
assert_deprecated(ActiveSupport.deprecator) do
|
assert_deprecated(ActiveSupport.deprecator) do
|
||||||
assert_deprecated do
|
assert_deprecated do
|
||||||
ActiveSupport::Deprecation.instance.warn
|
ActiveSupport::Deprecation._instance.warn
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -114,7 +114,7 @@ def setup
|
|||||||
klass.deprecate :zero
|
klass.deprecate :zero
|
||||||
end
|
end
|
||||||
assert_match "Module.deprecate without a deprecator is deprecated", deprecations.sole
|
assert_match "Module.deprecate without a deprecator is deprecated", deprecations.sole
|
||||||
assert_deprecated(/zero is deprecated/, ActiveSupport::Deprecation.instance) do
|
assert_deprecated(/zero is deprecated/, ActiveSupport::Deprecation._instance) do
|
||||||
klass.new.zero
|
klass.new.zero
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -761,7 +761,7 @@ def method
|
|||||||
|
|
||||||
test "warn delegator is deprecated" do
|
test "warn delegator is deprecated" do
|
||||||
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
|
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
|
||||||
assert_deprecated(ActiveSupport::Deprecation.instance) do
|
assert_deprecated(ActiveSupport::Deprecation._instance) do
|
||||||
ActiveSupport::Deprecation.warn
|
ActiveSupport::Deprecation.warn
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -798,7 +798,7 @@ def method
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "behavior delegators are deprecated" do
|
test "behavior delegators are deprecated" do
|
||||||
old_behavior = ActiveSupport::Deprecation.instance.behavior
|
old_behavior = ActiveSupport::Deprecation._instance.behavior
|
||||||
assert_deprecated("use Rails.application.deprecators[framework].behavior", ActiveSupport.deprecator) do
|
assert_deprecated("use Rails.application.deprecators[framework].behavior", ActiveSupport.deprecator) do
|
||||||
ActiveSupport::Deprecation.behavior
|
ActiveSupport::Deprecation.behavior
|
||||||
end
|
end
|
||||||
@ -806,7 +806,7 @@ def method
|
|||||||
ActiveSupport::Deprecation.behavior = ->(*) { }
|
ActiveSupport::Deprecation.behavior = ->(*) { }
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ActiveSupport::Deprecation.instance.behavior = old_behavior
|
ActiveSupport::Deprecation._instance.behavior = old_behavior
|
||||||
end
|
end
|
||||||
|
|
||||||
test "behavior= delegator is deprecated and delegates to the application's deprecators when available" do
|
test "behavior= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||||
@ -821,7 +821,7 @@ def method
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "disallowed_behavior delegators are deprecated" do
|
test "disallowed_behavior delegators are deprecated" do
|
||||||
old_behavior = ActiveSupport::Deprecation.instance.disallowed_behavior
|
old_behavior = ActiveSupport::Deprecation._instance.disallowed_behavior
|
||||||
assert_deprecated("use Rails.application.deprecators[framework].disallowed_behavior", ActiveSupport.deprecator) do
|
assert_deprecated("use Rails.application.deprecators[framework].disallowed_behavior", ActiveSupport.deprecator) do
|
||||||
ActiveSupport::Deprecation.disallowed_behavior
|
ActiveSupport::Deprecation.disallowed_behavior
|
||||||
end
|
end
|
||||||
@ -829,7 +829,7 @@ def method
|
|||||||
ActiveSupport::Deprecation.disallowed_behavior = ->(*) { }
|
ActiveSupport::Deprecation.disallowed_behavior = ->(*) { }
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ActiveSupport::Deprecation.instance.disallowed_behavior = old_behavior
|
ActiveSupport::Deprecation._instance.disallowed_behavior = old_behavior
|
||||||
end
|
end
|
||||||
|
|
||||||
test "disallowed_behavior= delegators is deprecated and delegates to the application's deprecators when available" do
|
test "disallowed_behavior= delegators is deprecated and delegates to the application's deprecators when available" do
|
||||||
@ -845,7 +845,7 @@ def method
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "debug delegators are deprecated" do
|
test "debug delegators are deprecated" do
|
||||||
old_debug = ActiveSupport::Deprecation.instance.debug
|
old_debug = ActiveSupport::Deprecation._instance.debug
|
||||||
assert_deprecated("use Rails.application.deprecators[framework].debug", ActiveSupport.deprecator) do
|
assert_deprecated("use Rails.application.deprecators[framework].debug", ActiveSupport.deprecator) do
|
||||||
ActiveSupport::Deprecation.debug
|
ActiveSupport::Deprecation.debug
|
||||||
end
|
end
|
||||||
@ -853,7 +853,7 @@ def method
|
|||||||
ActiveSupport::Deprecation.debug = true
|
ActiveSupport::Deprecation.debug = true
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ActiveSupport::Deprecation.instance.debug = old_debug
|
ActiveSupport::Deprecation._instance.debug = old_debug
|
||||||
end
|
end
|
||||||
|
|
||||||
test "debug= delegator is deprecated and delegates to the application's deprecators when available" do
|
test "debug= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||||
@ -866,7 +866,7 @@ def method
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "silenced delegators are deprecated" do
|
test "silenced delegators are deprecated" do
|
||||||
old_silenced = ActiveSupport::Deprecation.instance.silenced
|
old_silenced = ActiveSupport::Deprecation._instance.silenced
|
||||||
assert_deprecated("use Rails.application.deprecators[framework].silenced", ActiveSupport.deprecator) do
|
assert_deprecated("use Rails.application.deprecators[framework].silenced", ActiveSupport.deprecator) do
|
||||||
ActiveSupport::Deprecation.silenced
|
ActiveSupport::Deprecation.silenced
|
||||||
end
|
end
|
||||||
@ -874,7 +874,7 @@ def method
|
|||||||
ActiveSupport::Deprecation.silenced = true
|
ActiveSupport::Deprecation.silenced = true
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ActiveSupport::Deprecation.instance.silenced = old_silenced
|
ActiveSupport::Deprecation._instance.silenced = old_silenced
|
||||||
end
|
end
|
||||||
|
|
||||||
test "silenced= delegator is deprecated and delegates to the application's deprecators when available" do
|
test "silenced= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||||
@ -887,7 +887,7 @@ def method
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "disallowed_warnings delegators are deprecated" do
|
test "disallowed_warnings delegators are deprecated" do
|
||||||
old_disallowed_warnings = ActiveSupport::Deprecation.instance.disallowed_warnings
|
old_disallowed_warnings = ActiveSupport::Deprecation._instance.disallowed_warnings
|
||||||
assert_deprecated("use Rails.application.deprecators[framework].disallowed_warnings", ActiveSupport.deprecator) do
|
assert_deprecated("use Rails.application.deprecators[framework].disallowed_warnings", ActiveSupport.deprecator) do
|
||||||
ActiveSupport::Deprecation.disallowed_warnings
|
ActiveSupport::Deprecation.disallowed_warnings
|
||||||
end
|
end
|
||||||
@ -895,7 +895,7 @@ def method
|
|||||||
ActiveSupport::Deprecation.disallowed_warnings = :all
|
ActiveSupport::Deprecation.disallowed_warnings = :all
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ActiveSupport::Deprecation.instance.disallowed_warnings = old_disallowed_warnings
|
ActiveSupport::Deprecation._instance.disallowed_warnings = old_disallowed_warnings
|
||||||
end
|
end
|
||||||
|
|
||||||
test "disallowed_warnings= delegator is deprecated and delegates to the application's deprecators when available" do
|
test "disallowed_warnings= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||||
@ -908,7 +908,7 @@ def method
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "gem_name delegators are deprecated" do
|
test "gem_name delegators are deprecated" do
|
||||||
old_gem_name = ActiveSupport::Deprecation.instance.gem_name
|
old_gem_name = ActiveSupport::Deprecation._instance.gem_name
|
||||||
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
|
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
|
||||||
ActiveSupport::Deprecation.gem_name
|
ActiveSupport::Deprecation.gem_name
|
||||||
end
|
end
|
||||||
@ -916,11 +916,11 @@ def method
|
|||||||
ActiveSupport::Deprecation.gem_name = "MyGem"
|
ActiveSupport::Deprecation.gem_name = "MyGem"
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ActiveSupport::Deprecation.instance.gem_name = old_gem_name
|
ActiveSupport::Deprecation._instance.gem_name = old_gem_name
|
||||||
end
|
end
|
||||||
|
|
||||||
test "deprecation_horizon delegators are deprecated" do
|
test "deprecation_horizon delegators are deprecated" do
|
||||||
old_deprecation_horizon = ActiveSupport::Deprecation.instance.deprecation_horizon
|
old_deprecation_horizon = ActiveSupport::Deprecation._instance.deprecation_horizon
|
||||||
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
|
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
|
||||||
ActiveSupport::Deprecation.deprecation_horizon
|
ActiveSupport::Deprecation.deprecation_horizon
|
||||||
end
|
end
|
||||||
@ -928,7 +928,7 @@ def method
|
|||||||
ActiveSupport::Deprecation.deprecation_horizon = "2.0"
|
ActiveSupport::Deprecation.deprecation_horizon = "2.0"
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
ActiveSupport::Deprecation.instance.deprecation_horizon = old_deprecation_horizon
|
ActiveSupport::Deprecation._instance.deprecation_horizon = old_deprecation_horizon
|
||||||
end
|
end
|
||||||
|
|
||||||
test "warn deprecation skips the internal caller locations" do
|
test "warn deprecation skips the internal caller locations" do
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
module Rails
|
module Rails
|
||||||
def self.deprecator # :nodoc:
|
def self.deprecator # :nodoc:
|
||||||
ActiveSupport::Deprecation.instance
|
ActiveSupport::Deprecation._instance
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -3994,7 +3994,7 @@ def new(app); self; end
|
|||||||
test "Rails.application.deprecators includes framework deprecators" do
|
test "Rails.application.deprecators includes framework deprecators" do
|
||||||
app "production"
|
app "production"
|
||||||
|
|
||||||
assert_includes Rails.application.deprecators.each, ActiveSupport::Deprecation.instance
|
assert_includes Rails.application.deprecators.each, ActiveSupport::Deprecation._instance
|
||||||
assert_equal ActionCable.deprecator, Rails.application.deprecators[:action_cable]
|
assert_equal ActionCable.deprecator, Rails.application.deprecators[:action_cable]
|
||||||
assert_equal AbstractController.deprecator, Rails.application.deprecators[:action_controller]
|
assert_equal AbstractController.deprecator, Rails.application.deprecators[:action_controller]
|
||||||
assert_equal ActionController.deprecator, Rails.application.deprecators[:action_controller]
|
assert_equal ActionController.deprecator, Rails.application.deprecators[:action_controller]
|
||||||
|
Loading…
Reference in New Issue
Block a user