Skip to content

Commit c682bf2

Browse files
committed
Remove deprecated ActiveSupport::Deprecation delegation to instance
1 parent a45bfd9 commit c682bf2

File tree

5 files changed

+13
-242
lines changed

5 files changed

+13
-242
lines changed

activesupport/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* Remove deprecated `ActiveSupport::Deprecation` delegation to instance.
2+
3+
*Rafael Mendonça França*
4+
15
* Remove deprecated `SafeBuffer#clone_empty`.
26

37
*Rafael Mendonça França*

activesupport/lib/active_support/deprecation.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ class Deprecation
3939
# a circular require warning for active_support/deprecation.rb.
4040
#
4141
# So, we define the constant first, and load dependencies later.
42-
require "active_support/deprecation/instance_delegator"
43-
include InstanceDelegator
44-
4542
require "active_support/deprecation/behaviors"
4643
require "active_support/deprecation/reporting"
4744
require "active_support/deprecation/disallowed"
@@ -57,6 +54,13 @@ class Deprecation
5754
include Disallowed
5855
include MethodWrapper
5956

57+
MUTEX = Mutex.new # :nodoc:
58+
private_constant :MUTEX
59+
60+
def self._instance # :nodoc:
61+
@_instance ||= MUTEX.synchronize { @_instance ||= new }
62+
end
63+
6064
# The version number in which the deprecated behavior will be removed, by default.
6165
attr_accessor :deprecation_horizon
6266

activesupport/lib/active_support/deprecation/instance_delegator.rb

Lines changed: 0 additions & 65 deletions
This file was deleted.

activesupport/test/deprecation_test.rb

Lines changed: 0 additions & 174 deletions
Original file line numberDiff line numberDiff line change
@@ -778,180 +778,6 @@ def method
778778
end
779779
end
780780

781-
test "warn delegator is deprecated" do
782-
_, deprecations = collect_deprecations(ActiveSupport.deprecator) do
783-
ActiveSupport::Deprecation.warn "foo"
784-
end
785-
assert_equal 2, deprecations.size
786-
assert_match("foo", deprecations.first)
787-
assert_match("use your own Deprecation object instead", deprecations.last)
788-
end
789-
790-
test "deprecate_methods delegator is deprecated" do
791-
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
792-
ActiveSupport::Deprecation.deprecate_methods(Deprecatee)
793-
end
794-
end
795-
796-
test "silence delegator is deprecated" do
797-
assert_deprecated("use Rails.application.deprecators.silence instead", ActiveSupport.deprecator) do
798-
ActiveSupport::Deprecation.silence { }
799-
end
800-
end
801-
802-
test "silence delegator is deprecated and delegates to the application's deprecators when available" do
803-
with_rails_application_deprecators do
804-
assert_deprecated("use Rails.application.deprecators.silence instead", ActiveSupport.deprecator) do
805-
ActiveSupport::Deprecation.silence do
806-
assert_not_deprecated(@deprecator) do
807-
@deprecator.warn
808-
end
809-
end
810-
end
811-
end
812-
end
813-
814-
test "allow delegator is deprecated" do
815-
assert_deprecated("use Rails.application.deprecators[framework].allow", ActiveSupport.deprecator) do
816-
ActiveSupport::Deprecation.allow { }
817-
end
818-
end
819-
820-
test "behavior delegators are deprecated" do
821-
old_behavior = ActiveSupport::Deprecation._instance.behavior
822-
assert_deprecated("use Rails.application.deprecators[framework].behavior", ActiveSupport.deprecator) do
823-
ActiveSupport::Deprecation.behavior
824-
end
825-
assert_deprecated("use Rails.application.deprecators.behavior= instead", ActiveSupport.deprecator) do
826-
# we have to keep the same behavior for assert_deprecated to work
827-
ActiveSupport::Deprecation.behavior = ActiveSupport.deprecator.behavior
828-
end
829-
ensure
830-
ActiveSupport::Deprecation._instance.behavior = old_behavior
831-
end
832-
833-
test "behavior= delegator is deprecated and delegates to the application's deprecators when available" do
834-
with_rails_application_deprecators do
835-
called = false
836-
assert_deprecated("use Rails.application.deprecators.behavior= instead", ActiveSupport.deprecator) do
837-
ActiveSupport::Deprecation.behavior = ->(*) { called = true }
838-
@deprecator.warn
839-
end
840-
assert called
841-
end
842-
end
843-
844-
test "disallowed_behavior delegators are deprecated" do
845-
old_behavior = ActiveSupport::Deprecation._instance.disallowed_behavior
846-
assert_deprecated("use Rails.application.deprecators[framework].disallowed_behavior", ActiveSupport.deprecator) do
847-
ActiveSupport::Deprecation.disallowed_behavior
848-
end
849-
assert_deprecated("use Rails.application.deprecators.disallowed_behavior= instead", ActiveSupport.deprecator) do
850-
ActiveSupport::Deprecation.disallowed_behavior = ->(*) { }
851-
end
852-
ensure
853-
ActiveSupport::Deprecation._instance.disallowed_behavior = old_behavior
854-
end
855-
856-
test "disallowed_behavior= delegators is deprecated and delegates to the application's deprecators when available" do
857-
with_rails_application_deprecators do
858-
called = false
859-
assert_deprecated("use Rails.application.deprecators.disallowed_behavior= instead", ActiveSupport.deprecator) do
860-
ActiveSupport::Deprecation.disallowed_behavior = ->(*) { called = true }
861-
end
862-
@deprecator.disallowed_warnings = :all
863-
@deprecator.warn
864-
assert called
865-
end
866-
end
867-
868-
test "debug delegators are deprecated" do
869-
old_debug = ActiveSupport::Deprecation._instance.debug
870-
assert_deprecated("use Rails.application.deprecators[framework].debug", ActiveSupport.deprecator) do
871-
ActiveSupport::Deprecation.debug
872-
end
873-
assert_deprecated("use Rails.application.deprecators.debug= instead", ActiveSupport.deprecator) do
874-
ActiveSupport::Deprecation.debug = true
875-
end
876-
ensure
877-
ActiveSupport::Deprecation._instance.debug = old_debug
878-
end
879-
880-
test "debug= delegator is deprecated and delegates to the application's deprecators when available" do
881-
with_rails_application_deprecators do
882-
assert_deprecated("use Rails.application.deprecators.debug= instead", ActiveSupport.deprecator) do
883-
ActiveSupport::Deprecation.debug = true
884-
end
885-
assert @deprecator.debug
886-
end
887-
end
888-
889-
test "silenced delegators are deprecated" do
890-
old_silenced = ActiveSupport::Deprecation._instance.silenced
891-
assert_deprecated("use Rails.application.deprecators[framework].silenced", ActiveSupport.deprecator) do
892-
ActiveSupport::Deprecation.silenced
893-
end
894-
assert_deprecated("use Rails.application.deprecators.silenced= instead", ActiveSupport.deprecator) do
895-
ActiveSupport::Deprecation.silenced = false
896-
end
897-
ensure
898-
ActiveSupport::Deprecation._instance.silenced = old_silenced
899-
end
900-
901-
test "silenced= delegator is deprecated and delegates to the application's deprecators when available" do
902-
with_rails_application_deprecators do
903-
assert_deprecated("use Rails.application.deprecators.silenced= instead", ActiveSupport.deprecator) do
904-
ActiveSupport::Deprecation.silenced = true
905-
end
906-
assert @deprecator.silenced
907-
end
908-
end
909-
910-
test "disallowed_warnings delegators are deprecated" do
911-
old_disallowed_warnings = ActiveSupport::Deprecation._instance.disallowed_warnings
912-
assert_deprecated("use Rails.application.deprecators[framework].disallowed_warnings", ActiveSupport.deprecator) do
913-
ActiveSupport::Deprecation.disallowed_warnings
914-
end
915-
assert_deprecated("use Rails.application.deprecators.disallowed_warnings= instead", ActiveSupport.deprecator) do
916-
ActiveSupport::Deprecation.disallowed_warnings = []
917-
end
918-
ensure
919-
ActiveSupport::Deprecation._instance.disallowed_warnings = old_disallowed_warnings
920-
end
921-
922-
test "disallowed_warnings= delegator is deprecated and delegates to the application's deprecators when available" do
923-
with_rails_application_deprecators do
924-
assert_deprecated("use Rails.application.deprecators.disallowed_warnings= instead", ActiveSupport.deprecator) do
925-
ActiveSupport::Deprecation.disallowed_warnings = :all
926-
end
927-
assert_equal :all, @deprecator.disallowed_warnings
928-
end
929-
end
930-
931-
test "gem_name delegators are deprecated" do
932-
old_gem_name = ActiveSupport::Deprecation._instance.gem_name
933-
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
934-
ActiveSupport::Deprecation.gem_name
935-
end
936-
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
937-
ActiveSupport::Deprecation.gem_name = "MyGem"
938-
end
939-
ensure
940-
ActiveSupport::Deprecation._instance.gem_name = old_gem_name
941-
end
942-
943-
test "deprecation_horizon delegators are deprecated" do
944-
old_deprecation_horizon = ActiveSupport::Deprecation._instance.deprecation_horizon
945-
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
946-
ActiveSupport::Deprecation.deprecation_horizon
947-
end
948-
assert_deprecated("use your own Deprecation object instead", ActiveSupport.deprecator) do
949-
ActiveSupport::Deprecation.deprecation_horizon = "2.0"
950-
end
951-
ensure
952-
ActiveSupport::Deprecation._instance.deprecation_horizon = old_deprecation_horizon
953-
end
954-
955781
test "warn deprecation skips the internal caller locations" do
956782
@deprecator.behavior = ->(_, callstack, *) { @callstack = callstack }
957783
method_that_emits_deprecation(@deprecator)

guides/source/7_2_release_notes.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ Please refer to the [Changelog][active-support] for detailed changes.
207207

208208
### Removals
209209

210+
* Remove deprecated `ActiveSupport::Deprecation` delegation to instance.
211+
210212
* Remove deprecated `SafeBuffer#clone_empty`.
211213

212214
* Remove deprecated `#to_default_s` from `Array`, `Date`, `DateTime` and `Time`.

0 commit comments

Comments
 (0)