Skip to content

Commit c8eeac5

Browse files
committed
Deprecate ActiveSupport::Deprecation.instance
1 parent 0f0aa86 commit c8eeac5

File tree

9 files changed

+36
-30
lines changed

9 files changed

+36
-30
lines changed

activesupport/lib/active_support/core_ext/module/deprecation.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def deprecate(*method_names, deprecator: nil, **options)
2222
ActiveSupport.deprecator.deprecate_methods(self, *method_names, **options, deprecator: deprecator)
2323
else
2424
ActiveSupport.deprecator.warn("Module.deprecate without a deprecator is deprecated")
25-
ActiveSupport::Deprecation.instance.deprecate_methods(self, *method_names, **options)
25+
ActiveSupport::Deprecation._instance.deprecate_methods(self, *method_names, **options)
2626
end
2727
end
2828
end

activesupport/lib/active_support/deprecation.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class Deprecation
2525
require "active_support/core_ext/module/deprecation"
2626
require "concurrent/atomic/thread_local_var"
2727

28-
include Singleton
28+
include Singleton # :nodoc:
2929
include InstanceDelegator
3030
include Behavior
3131
include Reporting

activesupport/lib/active_support/deprecation/constant_accessor.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def const_missing(missing_const_name)
4141

4242
def deprecate_constant(const_name, new_constant, message: nil, deprecator: nil)
4343
ActiveSupport.deprecator.warn("DeprecatedConstantAccessor.deprecate_constant without a deprecator is deprecated") unless deprecator
44-
deprecator ||= ActiveSupport::Deprecation.instance
44+
deprecator ||= ActiveSupport::Deprecation._instance
4545
class_variable_set(:@@_deprecated_constants, {}) unless class_variable_defined?(:@@_deprecated_constants)
4646
class_variable_get(:@@_deprecated_constants)[const_name.to_s] = { new: new_constant, message: message, deprecator: deprecator }
4747
end

activesupport/lib/active_support/deprecation/instance_delegator.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ module ActiveSupport
44
class Deprecation
55
module InstanceDelegator # :nodoc:
66
def self.included(base)
7+
base.singleton_class.alias_method(:_instance, :instance)
78
base.extend(ClassMethods)
89
base.singleton_class.prepend(OverrideDelegators)
910
base.public_class_method :new
@@ -19,15 +20,15 @@ def method_added(method_name)
1920
use_instead =
2021
case method_name
2122
when :silence, :behavior=, :disallowed_behavior=, :disallowed_warnings=, :silenced=, :debug=
22-
target = "(defined?(Rails.application.deprecators) ? Rails.application.deprecators : ActiveSupport::Deprecation.instance)"
23+
target = "(defined?(Rails.application.deprecators) ? Rails.application.deprecators : ActiveSupport::Deprecation._instance)"
2324
"Rails.application.deprecators.#{method_name}"
2425
when :warn, :deprecate_methods, :gem_name, :gem_name=, :deprecation_horizon, :deprecation_horizon=
2526
"your own Deprecation object"
2627
else
2728
"Rails.application.deprecators[framework].#{method_name} where framework is for example :active_record"
2829
end
2930
args = /[^\]]=\z/.match?(method_name) ? "arg" : "..."
30-
target ||= "ActiveSupport::Deprecation.instance"
31+
target ||= "ActiveSupport::Deprecation._instance"
3132
singleton_class.module_eval <<~RUBY, __FILE__, __LINE__ + 1
3233
def #{method_name}(#{args})
3334
#{target}.#{method_name}(#{args})
@@ -36,6 +37,11 @@ def #{method_name}(#{args})
3637
end
3738
RUBY
3839
end
40+
41+
def instance
42+
ActiveSupport.deprecator.warn("ActiveSupport::Deprecation.instance is deprecated (use your own Deprecation object)")
43+
super
44+
end
3945
end
4046

4147
module OverrideDelegators # :nodoc:

activesupport/lib/active_support/deprecation/proxy_wrappers.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def initialize(object, message, deprecator = nil)
4040
@object = object
4141
@message = message
4242
ActiveSupport.deprecator.warn("DeprecatedObjectProxy without a deprecator is deprecated") unless deprecator
43-
@deprecator = deprecator || ActiveSupport::Deprecation.instance
43+
@deprecator = deprecator || ActiveSupport::Deprecation._instance
4444
end
4545

4646
private
@@ -91,7 +91,7 @@ def initialize(instance, method, var = "@#{method}", deprecator = nil)
9191
@method = method
9292
@var = var
9393
ActiveSupport.deprecator.warn("DeprecatedInstanceVariableProxy without a deprecator is deprecated") unless deprecator
94-
@deprecator = deprecator || ActiveSupport::Deprecation.instance
94+
@deprecator = deprecator || ActiveSupport::Deprecation._instance
9595
end
9696

9797
private
@@ -133,7 +133,7 @@ def initialize(old_const, new_const, deprecator = nil, message: "#{old_const} is
133133
@old_const = old_const
134134
@new_const = new_const
135135
ActiveSupport.deprecator.warn("DeprecatedConstantProxy without a deprecator is deprecated") unless deprecator
136-
@deprecator = deprecator || ActiveSupport::Deprecation.instance
136+
@deprecator = deprecator || ActiveSupport::Deprecation._instance
137137
@message = message
138138
end
139139

activesupport/lib/active_support/testing/deprecation.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def assert_deprecated(match = nil, deprecator = nil, &block)
3131
match, deprecator = nil, match if match.is_a?(ActiveSupport::Deprecation)
3232
unless deprecator
3333
ActiveSupport.deprecator.warn("assert_deprecated without a deprecator is deprecated")
34-
deprecator = ActiveSupport::Deprecation.instance
34+
deprecator = ActiveSupport::Deprecation._instance
3535
end
3636
result, warnings = collect_deprecations(deprecator, &block)
3737
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)
5454
def assert_not_deprecated(deprecator = nil, &block)
5555
unless deprecator
5656
ActiveSupport.deprecator.warn("assert_not_deprecated without a deprecator is deprecated")
57-
deprecator = ActiveSupport::Deprecation.instance
57+
deprecator = ActiveSupport::Deprecation._instance
5858
end
5959
result, deprecations = collect_deprecations(deprecator, &block)
6060
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)
7272
def collect_deprecations(deprecator = nil)
7373
unless deprecator
7474
ActiveSupport.deprecator.warn("collect_deprecations without a deprecator is deprecated")
75-
deprecator = ActiveSupport::Deprecation.instance
75+
deprecator = ActiveSupport::Deprecation._instance
7676
end
7777
old_behavior = deprecator.behavior
7878
deprecations = []

activesupport/test/deprecation_test.rb

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def setup
4242
test "assert_deprecated is deprecated without a deprecator" do
4343
assert_deprecated(ActiveSupport.deprecator) do
4444
assert_deprecated do
45-
ActiveSupport::Deprecation.instance.warn
45+
ActiveSupport::Deprecation._instance.warn
4646
end
4747
end
4848
end
@@ -114,7 +114,7 @@ def setup
114114
klass.deprecate :zero
115115
end
116116
assert_match "Module.deprecate without a deprecator is deprecated", deprecations.sole
117-
assert_deprecated(/zero is deprecated/, ActiveSupport::Deprecation.instance) do
117+
assert_deprecated(/zero is deprecated/, ActiveSupport::Deprecation._instance) do
118118
klass.new.zero
119119
end
120120
end
@@ -761,7 +761,7 @@ def method
761761

762762
test "warn delegator is deprecated" do
763763
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
764-
assert_deprecated(ActiveSupport::Deprecation.instance) do
764+
assert_deprecated(ActiveSupport::Deprecation._instance) do
765765
ActiveSupport::Deprecation.warn
766766
end
767767
end
@@ -798,15 +798,15 @@ def method
798798
end
799799

800800
test "behavior delegators are deprecated" do
801-
old_behavior = ActiveSupport::Deprecation.instance.behavior
801+
old_behavior = ActiveSupport::Deprecation._instance.behavior
802802
assert_deprecated("use Rails.application.deprecators[framework].behavior", ActiveSupport.deprecator) do
803803
ActiveSupport::Deprecation.behavior
804804
end
805805
assert_deprecated("use Rails.application.deprecators.behavior= instead", ActiveSupport.deprecator) do
806806
ActiveSupport::Deprecation.behavior = ->(*) { }
807807
end
808808
ensure
809-
ActiveSupport::Deprecation.instance.behavior = old_behavior
809+
ActiveSupport::Deprecation._instance.behavior = old_behavior
810810
end
811811

812812
test "behavior= delegator is deprecated and delegates to the application's deprecators when available" do
@@ -821,15 +821,15 @@ def method
821821
end
822822

823823
test "disallowed_behavior delegators are deprecated" do
824-
old_behavior = ActiveSupport::Deprecation.instance.disallowed_behavior
824+
old_behavior = ActiveSupport::Deprecation._instance.disallowed_behavior
825825
assert_deprecated("use Rails.application.deprecators[framework].disallowed_behavior", ActiveSupport.deprecator) do
826826
ActiveSupport::Deprecation.disallowed_behavior
827827
end
828828
assert_deprecated("use Rails.application.deprecators.disallowed_behavior= instead", ActiveSupport.deprecator) do
829829
ActiveSupport::Deprecation.disallowed_behavior = ->(*) { }
830830
end
831831
ensure
832-
ActiveSupport::Deprecation.instance.disallowed_behavior = old_behavior
832+
ActiveSupport::Deprecation._instance.disallowed_behavior = old_behavior
833833
end
834834

835835
test "disallowed_behavior= delegators is deprecated and delegates to the application's deprecators when available" do
@@ -845,15 +845,15 @@ def method
845845
end
846846

847847
test "debug delegators are deprecated" do
848-
old_debug = ActiveSupport::Deprecation.instance.debug
848+
old_debug = ActiveSupport::Deprecation._instance.debug
849849
assert_deprecated("use Rails.application.deprecators[framework].debug", ActiveSupport.deprecator) do
850850
ActiveSupport::Deprecation.debug
851851
end
852852
assert_deprecated("use Rails.application.deprecators.debug= instead", ActiveSupport.deprecator) do
853853
ActiveSupport::Deprecation.debug = true
854854
end
855855
ensure
856-
ActiveSupport::Deprecation.instance.debug = old_debug
856+
ActiveSupport::Deprecation._instance.debug = old_debug
857857
end
858858

859859
test "debug= delegator is deprecated and delegates to the application's deprecators when available" do
@@ -866,15 +866,15 @@ def method
866866
end
867867

868868
test "silenced delegators are deprecated" do
869-
old_silenced = ActiveSupport::Deprecation.instance.silenced
869+
old_silenced = ActiveSupport::Deprecation._instance.silenced
870870
assert_deprecated("use Rails.application.deprecators[framework].silenced", ActiveSupport.deprecator) do
871871
ActiveSupport::Deprecation.silenced
872872
end
873873
assert_deprecated("use Rails.application.deprecators.silenced= instead", ActiveSupport.deprecator) do
874874
ActiveSupport::Deprecation.silenced = true
875875
end
876876
ensure
877-
ActiveSupport::Deprecation.instance.silenced = old_silenced
877+
ActiveSupport::Deprecation._instance.silenced = old_silenced
878878
end
879879

880880
test "silenced= delegator is deprecated and delegates to the application's deprecators when available" do
@@ -887,15 +887,15 @@ def method
887887
end
888888

889889
test "disallowed_warnings delegators are deprecated" do
890-
old_disallowed_warnings = ActiveSupport::Deprecation.instance.disallowed_warnings
890+
old_disallowed_warnings = ActiveSupport::Deprecation._instance.disallowed_warnings
891891
assert_deprecated("use Rails.application.deprecators[framework].disallowed_warnings", ActiveSupport.deprecator) do
892892
ActiveSupport::Deprecation.disallowed_warnings
893893
end
894894
assert_deprecated("use Rails.application.deprecators.disallowed_warnings= instead", ActiveSupport.deprecator) do
895895
ActiveSupport::Deprecation.disallowed_warnings = :all
896896
end
897897
ensure
898-
ActiveSupport::Deprecation.instance.disallowed_warnings = old_disallowed_warnings
898+
ActiveSupport::Deprecation._instance.disallowed_warnings = old_disallowed_warnings
899899
end
900900

901901
test "disallowed_warnings= delegator is deprecated and delegates to the application's deprecators when available" do
@@ -908,27 +908,27 @@ def method
908908
end
909909

910910
test "gem_name delegators are deprecated" do
911-
old_gem_name = ActiveSupport::Deprecation.instance.gem_name
911+
old_gem_name = ActiveSupport::Deprecation._instance.gem_name
912912
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
913913
ActiveSupport::Deprecation.gem_name
914914
end
915915
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
916916
ActiveSupport::Deprecation.gem_name = "MyGem"
917917
end
918918
ensure
919-
ActiveSupport::Deprecation.instance.gem_name = old_gem_name
919+
ActiveSupport::Deprecation._instance.gem_name = old_gem_name
920920
end
921921

922922
test "deprecation_horizon delegators are deprecated" do
923-
old_deprecation_horizon = ActiveSupport::Deprecation.instance.deprecation_horizon
923+
old_deprecation_horizon = ActiveSupport::Deprecation._instance.deprecation_horizon
924924
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
925925
ActiveSupport::Deprecation.deprecation_horizon
926926
end
927927
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
928928
ActiveSupport::Deprecation.deprecation_horizon = "2.0"
929929
end
930930
ensure
931-
ActiveSupport::Deprecation.instance.deprecation_horizon = old_deprecation_horizon
931+
ActiveSupport::Deprecation._instance.deprecation_horizon = old_deprecation_horizon
932932
end
933933

934934
test "warn deprecation skips the internal caller locations" do

railties/lib/rails/deprecator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
module Rails
44
def self.deprecator # :nodoc:
5-
ActiveSupport::Deprecation.instance
5+
ActiveSupport::Deprecation._instance
66
end
77
end

railties/test/application/configuration_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3994,7 +3994,7 @@ def new(app); self; end
39943994
test "Rails.application.deprecators includes framework deprecators" do
39953995
app "production"
39963996

3997-
assert_includes Rails.application.deprecators.each, ActiveSupport::Deprecation.instance
3997+
assert_includes Rails.application.deprecators.each, ActiveSupport::Deprecation._instance
39983998
assert_equal ActionCable.deprecator, Rails.application.deprecators[:action_cable]
39993999
assert_equal AbstractController.deprecator, Rails.application.deprecators[:action_controller]
40004000
assert_equal ActionController.deprecator, Rails.application.deprecators[:action_controller]

0 commit comments

Comments
 (0)