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)
|
||||
else
|
||||
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
|
||||
|
@ -25,7 +25,7 @@ class Deprecation
|
||||
require "active_support/core_ext/module/deprecation"
|
||||
require "concurrent/atomic/thread_local_var"
|
||||
|
||||
include Singleton
|
||||
include Singleton # :nodoc:
|
||||
include InstanceDelegator
|
||||
include Behavior
|
||||
include Reporting
|
||||
|
@ -41,7 +41,7 @@ def const_missing(missing_const_name)
|
||||
|
||||
def deprecate_constant(const_name, new_constant, message: nil, deprecator: nil)
|
||||
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_get(:@@_deprecated_constants)[const_name.to_s] = { new: new_constant, message: message, deprecator: deprecator }
|
||||
end
|
||||
|
@ -4,6 +4,7 @@ module ActiveSupport
|
||||
class Deprecation
|
||||
module InstanceDelegator # :nodoc:
|
||||
def self.included(base)
|
||||
base.singleton_class.alias_method(:_instance, :instance)
|
||||
base.extend(ClassMethods)
|
||||
base.singleton_class.prepend(OverrideDelegators)
|
||||
base.public_class_method :new
|
||||
@ -19,7 +20,7 @@ def method_added(method_name)
|
||||
use_instead =
|
||||
case method_name
|
||||
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}"
|
||||
when :warn, :deprecate_methods, :gem_name, :gem_name=, :deprecation_horizon, :deprecation_horizon=
|
||||
"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"
|
||||
end
|
||||
args = /[^\]]=\z/.match?(method_name) ? "arg" : "..."
|
||||
target ||= "ActiveSupport::Deprecation.instance"
|
||||
target ||= "ActiveSupport::Deprecation._instance"
|
||||
singleton_class.module_eval <<~RUBY, __FILE__, __LINE__ + 1
|
||||
def #{method_name}(#{args})
|
||||
#{target}.#{method_name}(#{args})
|
||||
@ -36,6 +37,11 @@ def #{method_name}(#{args})
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
def instance
|
||||
ActiveSupport.deprecator.warn("ActiveSupport::Deprecation.instance is deprecated (use your own Deprecation object)")
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
module OverrideDelegators # :nodoc:
|
||||
|
@ -40,7 +40,7 @@ def initialize(object, message, deprecator = nil)
|
||||
@object = object
|
||||
@message = message
|
||||
ActiveSupport.deprecator.warn("DeprecatedObjectProxy without a deprecator is deprecated") unless deprecator
|
||||
@deprecator = deprecator || ActiveSupport::Deprecation.instance
|
||||
@deprecator = deprecator || ActiveSupport::Deprecation._instance
|
||||
end
|
||||
|
||||
private
|
||||
@ -91,7 +91,7 @@ def initialize(instance, method, var = "@#{method}", deprecator = nil)
|
||||
@method = method
|
||||
@var = var
|
||||
ActiveSupport.deprecator.warn("DeprecatedInstanceVariableProxy without a deprecator is deprecated") unless deprecator
|
||||
@deprecator = deprecator || ActiveSupport::Deprecation.instance
|
||||
@deprecator = deprecator || ActiveSupport::Deprecation._instance
|
||||
end
|
||||
|
||||
private
|
||||
@ -133,7 +133,7 @@ def initialize(old_const, new_const, deprecator = nil, message: "#{old_const} is
|
||||
@old_const = old_const
|
||||
@new_const = new_const
|
||||
ActiveSupport.deprecator.warn("DeprecatedConstantProxy without a deprecator is deprecated") unless deprecator
|
||||
@deprecator = deprecator || ActiveSupport::Deprecation.instance
|
||||
@deprecator = deprecator || ActiveSupport::Deprecation._instance
|
||||
@message = message
|
||||
end
|
||||
|
||||
|
@ -31,7 +31,7 @@ def assert_deprecated(match = nil, deprecator = nil, &block)
|
||||
match, deprecator = nil, match if match.is_a?(ActiveSupport::Deprecation)
|
||||
unless deprecator
|
||||
ActiveSupport.deprecator.warn("assert_deprecated without a deprecator is deprecated")
|
||||
deprecator = ActiveSupport::Deprecation.instance
|
||||
deprecator = ActiveSupport::Deprecation._instance
|
||||
end
|
||||
result, warnings = collect_deprecations(deprecator, &block)
|
||||
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)
|
||||
unless deprecator
|
||||
ActiveSupport.deprecator.warn("assert_not_deprecated without a deprecator is deprecated")
|
||||
deprecator = ActiveSupport::Deprecation.instance
|
||||
deprecator = ActiveSupport::Deprecation._instance
|
||||
end
|
||||
result, deprecations = collect_deprecations(deprecator, &block)
|
||||
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)
|
||||
unless deprecator
|
||||
ActiveSupport.deprecator.warn("collect_deprecations without a deprecator is deprecated")
|
||||
deprecator = ActiveSupport::Deprecation.instance
|
||||
deprecator = ActiveSupport::Deprecation._instance
|
||||
end
|
||||
old_behavior = deprecator.behavior
|
||||
deprecations = []
|
||||
|
@ -42,7 +42,7 @@ def setup
|
||||
test "assert_deprecated is deprecated without a deprecator" do
|
||||
assert_deprecated(ActiveSupport.deprecator) do
|
||||
assert_deprecated do
|
||||
ActiveSupport::Deprecation.instance.warn
|
||||
ActiveSupport::Deprecation._instance.warn
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -114,7 +114,7 @@ def setup
|
||||
klass.deprecate :zero
|
||||
end
|
||||
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
|
||||
end
|
||||
end
|
||||
@ -761,7 +761,7 @@ def method
|
||||
|
||||
test "warn delegator is deprecated" 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
|
||||
end
|
||||
end
|
||||
@ -798,7 +798,7 @@ def method
|
||||
end
|
||||
|
||||
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
|
||||
ActiveSupport::Deprecation.behavior
|
||||
end
|
||||
@ -806,7 +806,7 @@ def method
|
||||
ActiveSupport::Deprecation.behavior = ->(*) { }
|
||||
end
|
||||
ensure
|
||||
ActiveSupport::Deprecation.instance.behavior = old_behavior
|
||||
ActiveSupport::Deprecation._instance.behavior = old_behavior
|
||||
end
|
||||
|
||||
test "behavior= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||
@ -821,7 +821,7 @@ def method
|
||||
end
|
||||
|
||||
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
|
||||
ActiveSupport::Deprecation.disallowed_behavior
|
||||
end
|
||||
@ -829,7 +829,7 @@ def method
|
||||
ActiveSupport::Deprecation.disallowed_behavior = ->(*) { }
|
||||
end
|
||||
ensure
|
||||
ActiveSupport::Deprecation.instance.disallowed_behavior = old_behavior
|
||||
ActiveSupport::Deprecation._instance.disallowed_behavior = old_behavior
|
||||
end
|
||||
|
||||
test "disallowed_behavior= delegators is deprecated and delegates to the application's deprecators when available" do
|
||||
@ -845,7 +845,7 @@ def method
|
||||
end
|
||||
|
||||
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
|
||||
ActiveSupport::Deprecation.debug
|
||||
end
|
||||
@ -853,7 +853,7 @@ def method
|
||||
ActiveSupport::Deprecation.debug = true
|
||||
end
|
||||
ensure
|
||||
ActiveSupport::Deprecation.instance.debug = old_debug
|
||||
ActiveSupport::Deprecation._instance.debug = old_debug
|
||||
end
|
||||
|
||||
test "debug= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||
@ -866,7 +866,7 @@ def method
|
||||
end
|
||||
|
||||
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
|
||||
ActiveSupport::Deprecation.silenced
|
||||
end
|
||||
@ -874,7 +874,7 @@ def method
|
||||
ActiveSupport::Deprecation.silenced = true
|
||||
end
|
||||
ensure
|
||||
ActiveSupport::Deprecation.instance.silenced = old_silenced
|
||||
ActiveSupport::Deprecation._instance.silenced = old_silenced
|
||||
end
|
||||
|
||||
test "silenced= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||
@ -887,7 +887,7 @@ def method
|
||||
end
|
||||
|
||||
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
|
||||
ActiveSupport::Deprecation.disallowed_warnings
|
||||
end
|
||||
@ -895,7 +895,7 @@ def method
|
||||
ActiveSupport::Deprecation.disallowed_warnings = :all
|
||||
end
|
||||
ensure
|
||||
ActiveSupport::Deprecation.instance.disallowed_warnings = old_disallowed_warnings
|
||||
ActiveSupport::Deprecation._instance.disallowed_warnings = old_disallowed_warnings
|
||||
end
|
||||
|
||||
test "disallowed_warnings= delegator is deprecated and delegates to the application's deprecators when available" do
|
||||
@ -908,7 +908,7 @@ def method
|
||||
end
|
||||
|
||||
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
|
||||
ActiveSupport::Deprecation.gem_name
|
||||
end
|
||||
@ -916,11 +916,11 @@ def method
|
||||
ActiveSupport::Deprecation.gem_name = "MyGem"
|
||||
end
|
||||
ensure
|
||||
ActiveSupport::Deprecation.instance.gem_name = old_gem_name
|
||||
ActiveSupport::Deprecation._instance.gem_name = old_gem_name
|
||||
end
|
||||
|
||||
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
|
||||
ActiveSupport::Deprecation.deprecation_horizon
|
||||
end
|
||||
@ -928,7 +928,7 @@ def method
|
||||
ActiveSupport::Deprecation.deprecation_horizon = "2.0"
|
||||
end
|
||||
ensure
|
||||
ActiveSupport::Deprecation.instance.deprecation_horizon = old_deprecation_horizon
|
||||
ActiveSupport::Deprecation._instance.deprecation_horizon = old_deprecation_horizon
|
||||
end
|
||||
|
||||
test "warn deprecation skips the internal caller locations" do
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
module Rails
|
||||
def self.deprecator # :nodoc:
|
||||
ActiveSupport::Deprecation.instance
|
||||
ActiveSupport::Deprecation._instance
|
||||
end
|
||||
end
|
||||
|
@ -3994,7 +3994,7 @@ def new(app); self; end
|
||||
test "Rails.application.deprecators includes framework deprecators" do
|
||||
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 AbstractController.deprecator, Rails.application.deprecators[:action_controller]
|
||||
assert_equal ActionController.deprecator, Rails.application.deprecators[:action_controller]
|
||||
|
Loading…
Reference in New Issue
Block a user