activesupport 7.1.3.4 → 7.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +123 -1084
- data/lib/active_support/array_inquirer.rb +1 -1
- data/lib/active_support/backtrace_cleaner.rb +15 -3
- data/lib/active_support/broadcast_logger.rb +5 -4
- data/lib/active_support/cache/file_store.rb +15 -10
- data/lib/active_support/cache/mem_cache_store.rb +16 -74
- data/lib/active_support/cache/memory_store.rb +2 -1
- data/lib/active_support/cache/redis_cache_store.rb +16 -13
- data/lib/active_support/cache/serializer_with_fallback.rb +0 -23
- data/lib/active_support/cache.rb +61 -68
- data/lib/active_support/callbacks.rb +74 -113
- data/lib/active_support/code_generator.rb +15 -10
- data/lib/active_support/core_ext/array/conversions.rb +0 -2
- data/lib/active_support/core_ext/class/subclasses.rb +15 -35
- data/lib/active_support/core_ext/date/blank.rb +4 -0
- data/lib/active_support/core_ext/date/conversions.rb +0 -2
- data/lib/active_support/core_ext/date_and_time/compatibility.rb +28 -1
- data/lib/active_support/core_ext/date_time/blank.rb +4 -0
- data/lib/active_support/core_ext/date_time/conversions.rb +0 -4
- data/lib/active_support/core_ext/digest/uuid.rb +6 -0
- data/lib/active_support/core_ext/erb/util.rb +5 -0
- data/lib/active_support/core_ext/hash/keys.rb +4 -4
- data/lib/active_support/core_ext/module/attr_internal.rb +17 -6
- data/lib/active_support/core_ext/module/delegation.rb +20 -148
- data/lib/active_support/core_ext/module/deprecation.rb +1 -4
- data/lib/active_support/core_ext/numeric/conversions.rb +3 -3
- data/lib/active_support/core_ext/object/blank.rb +45 -1
- data/lib/active_support/core_ext/object/duplicable.rb +24 -15
- data/lib/active_support/core_ext/object/instance_variables.rb +11 -19
- data/lib/active_support/core_ext/object/json.rb +1 -1
- data/lib/active_support/core_ext/object/with.rb +5 -3
- data/lib/active_support/core_ext/pathname/blank.rb +4 -0
- data/lib/active_support/core_ext/range/overlap.rb +1 -1
- data/lib/active_support/core_ext/securerandom.rb +8 -24
- data/lib/active_support/core_ext/string/conversions.rb +1 -1
- data/lib/active_support/core_ext/string/filters.rb +1 -1
- data/lib/active_support/core_ext/string/output_safety.rb +0 -7
- data/lib/active_support/core_ext/time/calculations.rb +18 -28
- data/lib/active_support/core_ext/time/compatibility.rb +16 -0
- data/lib/active_support/core_ext/time/conversions.rb +0 -2
- data/lib/active_support/core_ext.rb +0 -1
- data/lib/active_support/current_attributes.rb +34 -40
- data/lib/active_support/delegation.rb +202 -0
- data/lib/active_support/dependencies/autoload.rb +0 -12
- data/lib/active_support/deprecation/constant_accessor.rb +47 -26
- data/lib/active_support/deprecation/proxy_wrappers.rb +9 -12
- data/lib/active_support/deprecation/reporting.rb +7 -2
- data/lib/active_support/deprecation.rb +8 -5
- data/lib/active_support/descendants_tracker.rb +9 -87
- data/lib/active_support/duration/iso8601_parser.rb +2 -2
- data/lib/active_support/duration/iso8601_serializer.rb +1 -2
- data/lib/active_support/duration.rb +11 -6
- data/lib/active_support/error_reporter.rb +41 -3
- data/lib/active_support/evented_file_update_checker.rb +0 -1
- data/lib/active_support/execution_wrapper.rb +0 -1
- data/lib/active_support/file_update_checker.rb +1 -1
- data/lib/active_support/fork_tracker.rb +2 -38
- data/lib/active_support/gem_version.rb +3 -3
- data/lib/active_support/hash_with_indifferent_access.rb +6 -8
- data/lib/active_support/html_safe_translation.rb +7 -4
- data/lib/active_support/json/encoding.rb +1 -1
- data/lib/active_support/log_subscriber.rb +1 -12
- data/lib/active_support/logger.rb +15 -2
- data/lib/active_support/logger_thread_safe_level.rb +0 -8
- data/lib/active_support/message_pack/extensions.rb +15 -2
- data/lib/active_support/message_verifier.rb +12 -0
- data/lib/active_support/messages/codec.rb +1 -1
- data/lib/active_support/multibyte/chars.rb +2 -2
- data/lib/active_support/notifications/fanout.rb +4 -7
- data/lib/active_support/notifications/instrumenter.rb +32 -21
- data/lib/active_support/notifications.rb +28 -27
- data/lib/active_support/number_helper/number_converter.rb +2 -2
- data/lib/active_support/option_merger.rb +2 -2
- data/lib/active_support/ordered_options.rb +53 -15
- data/lib/active_support/proxy_object.rb +8 -5
- data/lib/active_support/railtie.rb +4 -11
- data/lib/active_support/string_inquirer.rb +1 -1
- data/lib/active_support/subscriber.rb +1 -0
- data/lib/active_support/syntax_error_proxy.rb +1 -11
- data/lib/active_support/tagged_logging.rb +4 -1
- data/lib/active_support/test_case.rb +3 -1
- data/lib/active_support/testing/assertions.rb +4 -4
- data/lib/active_support/testing/constant_stubbing.rb +30 -8
- data/lib/active_support/testing/deprecation.rb +5 -12
- data/lib/active_support/testing/isolation.rb +18 -8
- data/lib/active_support/testing/method_call_assertions.rb +2 -16
- data/lib/active_support/testing/setup_and_teardown.rb +2 -0
- data/lib/active_support/testing/strict_warnings.rb +5 -4
- data/lib/active_support/testing/tests_without_assertions.rb +19 -0
- data/lib/active_support/testing/time_helpers.rb +3 -3
- data/lib/active_support/time_with_zone.rb +7 -3
- data/lib/active_support/values/time_zone.rb +10 -1
- data/lib/active_support/xml_mini.rb +11 -2
- data/lib/active_support.rb +3 -2
- metadata +35 -15
- data/lib/active_support/deprecation/instance_delegator.rb +0 -65
- data/lib/active_support/ruby_features.rb +0 -7
@@ -163,10 +163,10 @@ module ActiveSupport
|
|
163
163
|
now = date_or_time.midnight.to_time
|
164
164
|
elsif date_or_time.is_a?(String)
|
165
165
|
now = Time.zone.parse(date_or_time)
|
166
|
-
elsif with_usec
|
167
|
-
now = date_or_time.to_time
|
168
166
|
else
|
169
|
-
now = date_or_time
|
167
|
+
now = date_or_time
|
168
|
+
now = now.to_time unless now.is_a?(Time)
|
169
|
+
now = now.change(usec: 0) unless with_usec
|
170
170
|
end
|
171
171
|
|
172
172
|
# +now+ must be in local system timezone, because +Time.at(now)+
|
@@ -332,7 +332,7 @@ module ActiveSupport
|
|
332
332
|
#
|
333
333
|
def -(other)
|
334
334
|
if other.acts_like?(:time)
|
335
|
-
|
335
|
+
getutc - other.getutc
|
336
336
|
elsif duration_of_variable_length?(other)
|
337
337
|
method_missing(:-, other)
|
338
338
|
else
|
@@ -375,8 +375,8 @@ module ActiveSupport
|
|
375
375
|
#
|
376
376
|
# t = Time.zone.now # => Fri, 14 Apr 2017 11:45:15.116992711 EST -05:00
|
377
377
|
# t.change(year: 2020) # => Tue, 14 Apr 2020 11:45:15.116992711 EST -05:00
|
378
|
-
# t.change(hour: 12) # => Fri, 14 Apr 2017 12:00:00.
|
379
|
-
# t.change(min: 30) # => Fri, 14 Apr 2017 11:30:00.
|
378
|
+
# t.change(hour: 12) # => Fri, 14 Apr 2017 12:00:00.000000000 EST -05:00
|
379
|
+
# t.change(min: 30) # => Fri, 14 Apr 2017 11:30:00.000000000 EST -05:00
|
380
380
|
# t.change(offset: "-10:00") # => Fri, 14 Apr 2017 11:45:15.116992711 HST -10:00
|
381
381
|
# t.change(zone: "Hawaii") # => Fri, 14 Apr 2017 11:45:15.116992711 HST -10:00
|
382
382
|
def change(options)
|
@@ -506,6 +506,10 @@ module ActiveSupport
|
|
506
506
|
false
|
507
507
|
end
|
508
508
|
|
509
|
+
def present? # :nodoc:
|
510
|
+
true
|
511
|
+
end
|
512
|
+
|
509
513
|
def freeze
|
510
514
|
# preload instance variables before freezing
|
511
515
|
period; utc; time; to_datetime; to_time
|
@@ -134,10 +134,10 @@ module ActiveSupport
|
|
134
134
|
"Mumbai" => "Asia/Kolkata",
|
135
135
|
"New Delhi" => "Asia/Kolkata",
|
136
136
|
"Kathmandu" => "Asia/Kathmandu",
|
137
|
-
"Astana" => "Asia/Dhaka",
|
138
137
|
"Dhaka" => "Asia/Dhaka",
|
139
138
|
"Sri Jayawardenepura" => "Asia/Colombo",
|
140
139
|
"Almaty" => "Asia/Almaty",
|
140
|
+
"Astana" => "Asia/Almaty",
|
141
141
|
"Novosibirsk" => "Asia/Novosibirsk",
|
142
142
|
"Rangoon" => "Asia/Rangoon",
|
143
143
|
"Bangkok" => "Asia/Bangkok",
|
@@ -208,7 +208,9 @@ module ActiveSupport
|
|
208
208
|
TZInfo::Timezone.get(MAPPING[name] || name)
|
209
209
|
end
|
210
210
|
|
211
|
+
# :stopdoc:
|
211
212
|
alias_method :create, :new
|
213
|
+
# :startdoc:
|
212
214
|
|
213
215
|
# Returns a TimeZone instance with the given name, or +nil+ if no
|
214
216
|
# such TimeZone instance exists. (This exists to support the use of
|
@@ -296,15 +298,22 @@ module ActiveSupport
|
|
296
298
|
attr_reader :name
|
297
299
|
attr_reader :tzinfo
|
298
300
|
|
301
|
+
##
|
302
|
+
# :singleton-method: create
|
303
|
+
# :call-seq: create(name, utc_offset = nil, tzinfo = nil)
|
304
|
+
#
|
299
305
|
# Create a new TimeZone object with the given name and offset. The
|
300
306
|
# offset is the number of seconds that this time zone is offset from UTC
|
301
307
|
# (GMT). Seconds were chosen as the offset unit because that is the unit
|
302
308
|
# that Ruby uses to represent time zone offsets (see Time#utc_offset).
|
309
|
+
|
310
|
+
# :stopdoc:
|
303
311
|
def initialize(name, utc_offset = nil, tzinfo = nil)
|
304
312
|
@name = name
|
305
313
|
@utc_offset = utc_offset
|
306
314
|
@tzinfo = tzinfo || TimeZone.find_tzinfo(name)
|
307
315
|
end
|
316
|
+
# :startdoc:
|
308
317
|
|
309
318
|
# Returns the offset of this time zone from UTC in seconds.
|
310
319
|
def utc_offset
|
@@ -12,7 +12,7 @@ module ActiveSupport
|
|
12
12
|
# = \XmlMini
|
13
13
|
#
|
14
14
|
# To use the much faster libxml parser:
|
15
|
-
# gem
|
15
|
+
# gem "libxml-ruby"
|
16
16
|
# XmlMini.backend = 'LibXML'
|
17
17
|
module XmlMini
|
18
18
|
extend self
|
@@ -46,6 +46,7 @@ module ActiveSupport
|
|
46
46
|
"Date" => "date",
|
47
47
|
"DateTime" => "dateTime",
|
48
48
|
"Time" => "dateTime",
|
49
|
+
"ActiveSupport::Duration" => "duration",
|
49
50
|
"Array" => "array",
|
50
51
|
"Hash" => "hash"
|
51
52
|
}
|
@@ -56,6 +57,7 @@ module ActiveSupport
|
|
56
57
|
"symbol" => Proc.new { |symbol| symbol.to_s },
|
57
58
|
"date" => Proc.new { |date| date.to_fs(:db) },
|
58
59
|
"dateTime" => Proc.new { |time| time.xmlschema },
|
60
|
+
"duration" => Proc.new { |duration| duration.iso8601 },
|
59
61
|
"binary" => Proc.new { |binary| ::Base64.encode64(binary) },
|
60
62
|
"yaml" => Proc.new { |yaml| yaml.to_yaml }
|
61
63
|
} unless defined?(FORMATTING)
|
@@ -66,6 +68,7 @@ module ActiveSupport
|
|
66
68
|
"symbol" => Proc.new { |symbol| symbol.to_s.to_sym },
|
67
69
|
"date" => Proc.new { |date| ::Date.parse(date) },
|
68
70
|
"datetime" => Proc.new { |time| Time.xmlschema(time).utc rescue ::DateTime.parse(time).utc },
|
71
|
+
"duration" => Proc.new { |duration| Duration.parse(duration) },
|
69
72
|
"integer" => Proc.new { |integer| integer.to_i },
|
70
73
|
"float" => Proc.new { |float| float.to_f },
|
71
74
|
"decimal" => Proc.new do |number|
|
@@ -79,6 +82,7 @@ module ActiveSupport
|
|
79
82
|
"string" => Proc.new { |string| string.to_s },
|
80
83
|
"yaml" => Proc.new { |yaml| YAML.load(yaml) rescue yaml },
|
81
84
|
"base64Binary" => Proc.new { |bin| ::Base64.decode64(bin) },
|
85
|
+
"hexBinary" => Proc.new { |bin| _parse_hex_binary(bin) },
|
82
86
|
"binary" => Proc.new { |bin, entity| _parse_binary(bin, entity) },
|
83
87
|
"file" => Proc.new { |file, entity| _parse_file(file, entity) }
|
84
88
|
}
|
@@ -162,11 +166,12 @@ module ActiveSupport
|
|
162
166
|
"#{left}#{middle.tr('_ ', '--')}#{right}"
|
163
167
|
end
|
164
168
|
|
165
|
-
# TODO: Add support for other encodings
|
166
169
|
def _parse_binary(bin, entity)
|
167
170
|
case entity["encoding"]
|
168
171
|
when "base64"
|
169
172
|
::Base64.decode64(bin)
|
173
|
+
when "hex", "hexBinary"
|
174
|
+
_parse_hex_binary(bin)
|
170
175
|
else
|
171
176
|
bin
|
172
177
|
end
|
@@ -180,6 +185,10 @@ module ActiveSupport
|
|
180
185
|
f
|
181
186
|
end
|
182
187
|
|
188
|
+
def _parse_hex_binary(bin)
|
189
|
+
[bin].pack("H*")
|
190
|
+
end
|
191
|
+
|
183
192
|
def current_thread_backend
|
184
193
|
IsolatedExecutionState[:xml_mini_backend]
|
185
194
|
end
|
data/lib/active_support.rb
CHANGED
@@ -32,7 +32,7 @@ require "active_support/broadcast_logger"
|
|
32
32
|
require "active_support/lazy_load_hooks"
|
33
33
|
require "active_support/core_ext/date_and_time/compatibility"
|
34
34
|
|
35
|
-
# :include:
|
35
|
+
# :include: ../README.rdoc
|
36
36
|
module ActiveSupport
|
37
37
|
extend ActiveSupport::Autoload
|
38
38
|
|
@@ -63,6 +63,7 @@ module ActiveSupport
|
|
63
63
|
autoload :Callbacks
|
64
64
|
autoload :Configurable
|
65
65
|
autoload :Deprecation
|
66
|
+
autoload :Delegation
|
66
67
|
autoload :Digest
|
67
68
|
autoload :ExecutionContext
|
68
69
|
autoload :Gzip
|
@@ -116,7 +117,7 @@ module ActiveSupport
|
|
116
117
|
def self.to_time_preserves_timezone=(value)
|
117
118
|
unless value
|
118
119
|
ActiveSupport.deprecator.warn(
|
119
|
-
"Support for the pre-Ruby 2.4 behavior of to_time has been deprecated and will be removed in Rails
|
120
|
+
"Support for the pre-Ruby 2.4 behavior of to_time has been deprecated and will be removed in Rails 8.0."
|
120
121
|
)
|
121
122
|
end
|
122
123
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activesupport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.1
|
4
|
+
version: 7.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -37,6 +37,9 @@ dependencies:
|
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '2.0'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.0.5
|
40
43
|
type: :runtime
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -44,6 +47,9 @@ dependencies:
|
|
44
47
|
- - "~>"
|
45
48
|
- !ruby/object:Gem::Version
|
46
49
|
version: '2.0'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.0.5
|
47
53
|
- !ruby/object:Gem::Dependency
|
48
54
|
name: concurrent-ruby
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,7 +59,7 @@ dependencies:
|
|
53
59
|
version: '1.0'
|
54
60
|
- - ">="
|
55
61
|
- !ruby/object:Gem::Version
|
56
|
-
version: 1.
|
62
|
+
version: 1.3.1
|
57
63
|
type: :runtime
|
58
64
|
prerelease: false
|
59
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -63,7 +69,7 @@ dependencies:
|
|
63
69
|
version: '1.0'
|
64
70
|
- - ">="
|
65
71
|
- !ruby/object:Gem::Version
|
66
|
-
version: 1.
|
72
|
+
version: 1.3.1
|
67
73
|
- !ruby/object:Gem::Dependency
|
68
74
|
name: connection_pool
|
69
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,7 +127,7 @@ dependencies:
|
|
121
127
|
- !ruby/object:Gem::Version
|
122
128
|
version: '0'
|
123
129
|
- !ruby/object:Gem::Dependency
|
124
|
-
name:
|
130
|
+
name: bigdecimal
|
125
131
|
requirement: !ruby/object:Gem::Requirement
|
126
132
|
requirements:
|
127
133
|
- - ">="
|
@@ -135,19 +141,33 @@ dependencies:
|
|
135
141
|
- !ruby/object:Gem::Version
|
136
142
|
version: '0'
|
137
143
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
144
|
+
name: logger
|
139
145
|
requirement: !ruby/object:Gem::Requirement
|
140
146
|
requirements:
|
141
147
|
- - ">="
|
142
148
|
- !ruby/object:Gem::Version
|
143
|
-
version:
|
149
|
+
version: 1.4.2
|
144
150
|
type: :runtime
|
145
151
|
prerelease: false
|
146
152
|
version_requirements: !ruby/object:Gem::Requirement
|
147
153
|
requirements:
|
148
154
|
- - ">="
|
149
155
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
156
|
+
version: 1.4.2
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: securerandom
|
159
|
+
requirement: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: '0.3'
|
164
|
+
type: :runtime
|
165
|
+
prerelease: false
|
166
|
+
version_requirements: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '0.3'
|
151
171
|
description: A toolkit of support libraries and Ruby core extensions extracted from
|
152
172
|
the Rails framework. Rich support for multibyte strings, internationalization, time
|
153
173
|
zones, and testing.
|
@@ -308,6 +328,7 @@ files:
|
|
308
328
|
- lib/active_support/current_attributes.rb
|
309
329
|
- lib/active_support/current_attributes/test_helper.rb
|
310
330
|
- lib/active_support/deep_mergeable.rb
|
331
|
+
- lib/active_support/delegation.rb
|
311
332
|
- lib/active_support/dependencies.rb
|
312
333
|
- lib/active_support/dependencies/autoload.rb
|
313
334
|
- lib/active_support/dependencies/interlock.rb
|
@@ -317,7 +338,6 @@ files:
|
|
317
338
|
- lib/active_support/deprecation/constant_accessor.rb
|
318
339
|
- lib/active_support/deprecation/deprecators.rb
|
319
340
|
- lib/active_support/deprecation/disallowed.rb
|
320
|
-
- lib/active_support/deprecation/instance_delegator.rb
|
321
341
|
- lib/active_support/deprecation/method_wrappers.rb
|
322
342
|
- lib/active_support/deprecation/proxy_wrappers.rb
|
323
343
|
- lib/active_support/deprecation/reporting.rb
|
@@ -403,7 +423,6 @@ files:
|
|
403
423
|
- lib/active_support/railtie.rb
|
404
424
|
- lib/active_support/reloader.rb
|
405
425
|
- lib/active_support/rescuable.rb
|
406
|
-
- lib/active_support/ruby_features.rb
|
407
426
|
- lib/active_support/secure_compare_rotator.rb
|
408
427
|
- lib/active_support/security_utils.rb
|
409
428
|
- lib/active_support/string_inquirer.rb
|
@@ -429,6 +448,7 @@ files:
|
|
429
448
|
- lib/active_support/testing/stream.rb
|
430
449
|
- lib/active_support/testing/strict_warnings.rb
|
431
450
|
- lib/active_support/testing/tagged_logging.rb
|
451
|
+
- lib/active_support/testing/tests_without_assertions.rb
|
432
452
|
- lib/active_support/testing/time_helpers.rb
|
433
453
|
- lib/active_support/time.rb
|
434
454
|
- lib/active_support/time_with_zone.rb
|
@@ -446,10 +466,10 @@ licenses:
|
|
446
466
|
- MIT
|
447
467
|
metadata:
|
448
468
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
449
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.1
|
450
|
-
documentation_uri: https://api.rubyonrails.org/v7.1
|
469
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.2.1/activesupport/CHANGELOG.md
|
470
|
+
documentation_uri: https://api.rubyonrails.org/v7.2.1/
|
451
471
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
452
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.1
|
472
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.2.1/activesupport
|
453
473
|
rubygems_mfa_required: 'true'
|
454
474
|
post_install_message:
|
455
475
|
rdoc_options:
|
@@ -461,14 +481,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
461
481
|
requirements:
|
462
482
|
- - ">="
|
463
483
|
- !ruby/object:Gem::Version
|
464
|
-
version:
|
484
|
+
version: 3.1.0
|
465
485
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
466
486
|
requirements:
|
467
487
|
- - ">="
|
468
488
|
- !ruby/object:Gem::Version
|
469
489
|
version: '0'
|
470
490
|
requirements: []
|
471
|
-
rubygems_version: 3.
|
491
|
+
rubygems_version: 3.5.11
|
472
492
|
signing_key:
|
473
493
|
specification_version: 4
|
474
494
|
summary: A toolkit of support libraries and Ruby core extensions extracted from the
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ActiveSupport
|
4
|
-
class Deprecation
|
5
|
-
module InstanceDelegator # :nodoc:
|
6
|
-
def self.included(base)
|
7
|
-
base.extend(ClassMethods)
|
8
|
-
base.singleton_class.prepend(OverrideDelegators)
|
9
|
-
end
|
10
|
-
|
11
|
-
module ClassMethods # :nodoc:
|
12
|
-
MUTEX = Mutex.new
|
13
|
-
private_constant :MUTEX
|
14
|
-
|
15
|
-
def include(included_module)
|
16
|
-
included_module.instance_methods.each { |m| method_added(m) }
|
17
|
-
super
|
18
|
-
end
|
19
|
-
|
20
|
-
def method_added(method_name)
|
21
|
-
use_instead =
|
22
|
-
case method_name
|
23
|
-
when :silence, :behavior=, :disallowed_behavior=, :disallowed_warnings=, :silenced=, :debug=
|
24
|
-
target = "(defined?(Rails.application.deprecators) ? Rails.application.deprecators : ActiveSupport::Deprecation._instance)"
|
25
|
-
"Rails.application.deprecators.#{method_name}"
|
26
|
-
when :warn, :deprecate_methods, :gem_name, :gem_name=, :deprecation_horizon, :deprecation_horizon=
|
27
|
-
"your own Deprecation object"
|
28
|
-
else
|
29
|
-
"Rails.application.deprecators[framework].#{method_name} where framework is for example :active_record"
|
30
|
-
end
|
31
|
-
args = /[^\]]=\z/.match?(method_name) ? "arg" : "..."
|
32
|
-
target ||= "ActiveSupport::Deprecation._instance"
|
33
|
-
singleton_class.module_eval <<~RUBY, __FILE__, __LINE__ + 1
|
34
|
-
def #{method_name}(#{args})
|
35
|
-
#{target}.#{method_name}(#{args})
|
36
|
-
ensure
|
37
|
-
ActiveSupport.deprecator.warn("Calling #{method_name} on ActiveSupport::Deprecation is deprecated and will be removed from Rails (use #{use_instead} instead)")
|
38
|
-
end
|
39
|
-
RUBY
|
40
|
-
end
|
41
|
-
|
42
|
-
def instance
|
43
|
-
ActiveSupport.deprecator.warn("ActiveSupport::Deprecation.instance is deprecated (use your own Deprecation object)")
|
44
|
-
_instance
|
45
|
-
end
|
46
|
-
|
47
|
-
def _instance
|
48
|
-
@_instance ||= MUTEX.synchronize { @_instance ||= new }
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
module OverrideDelegators # :nodoc:
|
53
|
-
def warn(message = nil, callstack = nil)
|
54
|
-
callstack ||= caller_locations(2)
|
55
|
-
super
|
56
|
-
end
|
57
|
-
|
58
|
-
def deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil)
|
59
|
-
caller_backtrace ||= caller_locations(2)
|
60
|
-
super
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|