activesupport 7.1.5.1 → 7.2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +121 -1138
  3. data/lib/active_support/array_inquirer.rb +1 -1
  4. data/lib/active_support/backtrace_cleaner.rb +10 -3
  5. data/lib/active_support/broadcast_logger.rb +4 -4
  6. data/lib/active_support/cache/file_store.rb +15 -10
  7. data/lib/active_support/cache/mem_cache_store.rb +16 -74
  8. data/lib/active_support/cache/memory_store.rb +2 -1
  9. data/lib/active_support/cache/redis_cache_store.rb +16 -13
  10. data/lib/active_support/cache/serializer_with_fallback.rb +0 -23
  11. data/lib/active_support/cache.rb +60 -68
  12. data/lib/active_support/callbacks.rb +74 -113
  13. data/lib/active_support/core_ext/array/conversions.rb +0 -2
  14. data/lib/active_support/core_ext/class/subclasses.rb +15 -35
  15. data/lib/active_support/core_ext/date/blank.rb +4 -0
  16. data/lib/active_support/core_ext/date/conversions.rb +0 -2
  17. data/lib/active_support/core_ext/date_and_time/compatibility.rb +28 -1
  18. data/lib/active_support/core_ext/date_time/blank.rb +4 -0
  19. data/lib/active_support/core_ext/date_time/conversions.rb +0 -4
  20. data/lib/active_support/core_ext/digest/uuid.rb +6 -0
  21. data/lib/active_support/core_ext/erb/util.rb +5 -0
  22. data/lib/active_support/core_ext/hash/keys.rb +4 -4
  23. data/lib/active_support/core_ext/module/attr_internal.rb +17 -6
  24. data/lib/active_support/core_ext/module/delegation.rb +20 -163
  25. data/lib/active_support/core_ext/module/deprecation.rb +1 -4
  26. data/lib/active_support/core_ext/numeric/conversions.rb +3 -3
  27. data/lib/active_support/core_ext/object/blank.rb +45 -1
  28. data/lib/active_support/core_ext/object/instance_variables.rb +11 -19
  29. data/lib/active_support/core_ext/object/json.rb +1 -1
  30. data/lib/active_support/core_ext/object/with.rb +5 -3
  31. data/lib/active_support/core_ext/pathname/blank.rb +4 -0
  32. data/lib/active_support/core_ext/range/overlap.rb +1 -1
  33. data/lib/active_support/core_ext/securerandom.rb +8 -24
  34. data/lib/active_support/core_ext/string/conversions.rb +1 -1
  35. data/lib/active_support/core_ext/string/filters.rb +1 -1
  36. data/lib/active_support/core_ext/string/multibyte.rb +1 -1
  37. data/lib/active_support/core_ext/string/output_safety.rb +0 -7
  38. data/lib/active_support/core_ext/time/calculations.rb +18 -28
  39. data/lib/active_support/core_ext/time/compatibility.rb +16 -0
  40. data/lib/active_support/core_ext/time/conversions.rb +0 -2
  41. data/lib/active_support/core_ext/time/zones.rb +1 -1
  42. data/lib/active_support/core_ext.rb +0 -1
  43. data/lib/active_support/current_attributes.rb +38 -40
  44. data/lib/active_support/delegation.rb +202 -0
  45. data/lib/active_support/dependencies/autoload.rb +0 -12
  46. data/lib/active_support/deprecation/constant_accessor.rb +47 -26
  47. data/lib/active_support/deprecation/proxy_wrappers.rb +9 -12
  48. data/lib/active_support/deprecation/reporting.rb +7 -2
  49. data/lib/active_support/deprecation.rb +8 -5
  50. data/lib/active_support/descendants_tracker.rb +9 -87
  51. data/lib/active_support/duration/iso8601_parser.rb +2 -2
  52. data/lib/active_support/duration/iso8601_serializer.rb +1 -2
  53. data/lib/active_support/duration.rb +11 -6
  54. data/lib/active_support/encrypted_file.rb +1 -1
  55. data/lib/active_support/error_reporter.rb +41 -3
  56. data/lib/active_support/evented_file_update_checker.rb +0 -1
  57. data/lib/active_support/execution_wrapper.rb +0 -1
  58. data/lib/active_support/file_update_checker.rb +1 -1
  59. data/lib/active_support/fork_tracker.rb +2 -38
  60. data/lib/active_support/gem_version.rb +2 -2
  61. data/lib/active_support/hash_with_indifferent_access.rb +6 -8
  62. data/lib/active_support/html_safe_translation.rb +3 -0
  63. data/lib/active_support/log_subscriber.rb +0 -12
  64. data/lib/active_support/logger.rb +15 -2
  65. data/lib/active_support/logger_thread_safe_level.rb +0 -8
  66. data/lib/active_support/message_pack/extensions.rb +15 -2
  67. data/lib/active_support/message_verifier.rb +12 -0
  68. data/lib/active_support/multibyte/chars.rb +2 -2
  69. data/lib/active_support/notifications/fanout.rb +4 -7
  70. data/lib/active_support/notifications/instrumenter.rb +21 -18
  71. data/lib/active_support/notifications.rb +28 -27
  72. data/lib/active_support/number_helper/number_converter.rb +2 -2
  73. data/lib/active_support/option_merger.rb +2 -2
  74. data/lib/active_support/ordered_options.rb +53 -15
  75. data/lib/active_support/proxy_object.rb +8 -5
  76. data/lib/active_support/railtie.rb +4 -11
  77. data/lib/active_support/string_inquirer.rb +1 -1
  78. data/lib/active_support/subscriber.rb +1 -0
  79. data/lib/active_support/tagged_logging.rb +0 -1
  80. data/lib/active_support/test_case.rb +3 -1
  81. data/lib/active_support/testing/assertions.rb +4 -4
  82. data/lib/active_support/testing/constant_stubbing.rb +30 -8
  83. data/lib/active_support/testing/deprecation.rb +5 -12
  84. data/lib/active_support/testing/isolation.rb +20 -8
  85. data/lib/active_support/testing/method_call_assertions.rb +2 -16
  86. data/lib/active_support/testing/parallelization/server.rb +3 -0
  87. data/lib/active_support/testing/strict_warnings.rb +8 -4
  88. data/lib/active_support/testing/tests_without_assertions.rb +19 -0
  89. data/lib/active_support/testing/time_helpers.rb +3 -3
  90. data/lib/active_support/time_with_zone.rb +8 -4
  91. data/lib/active_support/values/time_zone.rb +7 -7
  92. data/lib/active_support/xml_mini.rb +11 -2
  93. data/lib/active_support.rb +2 -1
  94. metadata +15 -23
  95. data/lib/active_support/deprecation/instance_delegator.rb +0 -65
  96. data/lib/active_support/ruby_features.rb +0 -7
@@ -5,6 +5,8 @@ Warning[:deprecated] = true
5
5
 
6
6
  module ActiveSupport
7
7
  module RaiseWarnings # :nodoc:
8
+ class WarningError < StandardError; end
9
+
8
10
  PROJECT_ROOT = File.expand_path("../../../../", __dir__)
9
11
  ALLOWED_WARNINGS = Regexp.union(
10
12
  /circular require considered harmful.*delayed_job/, # Bug in delayed job.
@@ -12,6 +14,9 @@ module ActiveSupport
12
14
  # Expected non-verbose warning emitted by Rails.
13
15
  /Ignoring .*\.yml because it has expired/,
14
16
  /Failed to validate the schema cache because/,
17
+
18
+ # TODO: We need to decide what to do with this.
19
+ /Status code :unprocessable_entity is deprecated/
15
20
  )
16
21
 
17
22
  SUPPRESSED_WARNINGS = Regexp.union(
@@ -21,18 +26,17 @@ module ActiveSupport
21
26
  %r{/lib/mail/parsers/.*assigned but unused variable - testEof}
22
27
  )
23
28
 
24
- def warn(message, *)
29
+ def warn(message, ...)
25
30
  return if SUPPRESSED_WARNINGS.match?(message)
26
31
 
27
32
  super
28
33
 
29
34
  return unless message.include?(PROJECT_ROOT)
30
35
  return if ALLOWED_WARNINGS.match?(message)
31
- return unless ENV["RAILS_STRICT_WARNINGS"] || ENV["CI"]
36
+ return unless ENV["RAILS_STRICT_WARNINGS"] || ENV["BUILDKITE"]
32
37
 
33
- raise message
38
+ raise WarningError.new(message)
34
39
  end
35
- ruby2_keywords :warn if respond_to?(:ruby2_keywords, true)
36
40
  end
37
41
  end
38
42
 
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveSupport
4
+ module Testing
5
+ # Warns when a test case does not perform any assertions.
6
+ #
7
+ # This is helpful in detecting broken tests that do not perform intended assertions.
8
+ module TestsWithoutAssertions # :nodoc:
9
+ def after_teardown
10
+ super
11
+
12
+ if assertions.zero? && !skipped? && !error?
13
+ file, line = method(name).source_location
14
+ warn "Test is missing assertions: `#{name}` #{file}:#{line}"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -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.to_time.change(usec: 0)
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)+
@@ -85,7 +85,7 @@ module ActiveSupport
85
85
  end
86
86
  alias_method :getlocal, :localtime
87
87
 
88
- # Returns true if the current time is within Daylight Savings Time for the
88
+ # Returns true if the current time is within Daylight Savings \Time for the
89
89
  # specified time zone.
90
90
  #
91
91
  # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
@@ -332,7 +332,7 @@ module ActiveSupport
332
332
  #
333
333
  def -(other)
334
334
  if other.acts_like?(:time)
335
- to_time - other.to_time
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.116992711 EST -05:00
379
- # t.change(min: 30) # => Fri, 14 Apr 2017 11:30:00.116992711 EST -05: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
@@ -12,7 +12,7 @@ module ActiveSupport
12
12
  # * Limit the set of zones provided by TZInfo to a meaningful subset of 134
13
13
  # zones.
14
14
  # * Retrieve and display zones with a friendlier name
15
- # (e.g., "Eastern Time (US & Canada)" instead of "America/New_York").
15
+ # (e.g., "Eastern \Time (US & Canada)" instead of "America/New_York").
16
16
  # * Lazily load +TZInfo::Timezone+ instances only when they're needed.
17
17
  # * Create ActiveSupport::TimeWithZone instances via TimeZone's +local+,
18
18
  # +parse+, +at+, and +now+ methods.
@@ -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",
@@ -357,7 +357,7 @@ module ActiveSupport
357
357
  "(GMT#{formatted_offset}) #{name}"
358
358
  end
359
359
 
360
- # Method for creating new ActiveSupport::TimeWithZone instance in time zone
360
+ # \Method for creating new ActiveSupport::TimeWithZone instance in time zone
361
361
  # of +self+ from given values.
362
362
  #
363
363
  # Time.zone = 'Hawaii' # => "Hawaii"
@@ -367,7 +367,7 @@ module ActiveSupport
367
367
  ActiveSupport::TimeWithZone.new(nil, self, time)
368
368
  end
369
369
 
370
- # Method for creating new ActiveSupport::TimeWithZone instance in time zone
370
+ # \Method for creating new ActiveSupport::TimeWithZone instance in time zone
371
371
  # of +self+ from number of seconds since the Unix epoch.
372
372
  #
373
373
  # Time.zone = 'Hawaii' # => "Hawaii"
@@ -382,7 +382,7 @@ module ActiveSupport
382
382
  Time.at(*args).utc.in_time_zone(self)
383
383
  end
384
384
 
385
- # Method for creating new ActiveSupport::TimeWithZone instance in time zone
385
+ # \Method for creating new ActiveSupport::TimeWithZone instance in time zone
386
386
  # of +self+ from an ISO 8601 string.
387
387
  #
388
388
  # Time.zone = 'Hawaii' # => "Hawaii"
@@ -434,7 +434,7 @@ module ActiveSupport
434
434
  raise ArgumentError, "invalid date"
435
435
  end
436
436
 
437
- # Method for creating new ActiveSupport::TimeWithZone instance in time zone
437
+ # \Method for creating new ActiveSupport::TimeWithZone instance in time zone
438
438
  # of +self+ from parsed string.
439
439
  #
440
440
  # Time.zone = 'Hawaii' # => "Hawaii"
@@ -456,7 +456,7 @@ module ActiveSupport
456
456
  parts_to_time(Date._parse(str, false), now)
457
457
  end
458
458
 
459
- # Method for creating new ActiveSupport::TimeWithZone instance in time zone
459
+ # \Method for creating new ActiveSupport::TimeWithZone instance in time zone
460
460
  # of +self+ from an RFC 3339 string.
461
461
  #
462
462
  # Time.zone = 'Hawaii' # => "Hawaii"
@@ -12,7 +12,7 @@ module ActiveSupport
12
12
  # = \XmlMini
13
13
  #
14
14
  # To use the much faster libxml parser:
15
- # gem 'libxml-ruby'
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
@@ -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 7.2."
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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activesupport
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.5.1
4
+ version: 7.2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -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.0.2
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.0.2
72
+ version: 1.3.1
67
73
  - !ruby/object:Gem::Dependency
68
74
  name: connection_pool
69
75
  requirement: !ruby/object:Gem::Requirement
@@ -120,20 +126,6 @@ dependencies:
120
126
  - - ">="
121
127
  - !ruby/object:Gem::Version
122
128
  version: '0'
123
- - !ruby/object:Gem::Dependency
124
- name: mutex_m
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: '0'
130
- type: :runtime
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: '0'
137
129
  - !ruby/object:Gem::Dependency
138
130
  name: bigdecimal
139
131
  requirement: !ruby/object:Gem::Requirement
@@ -350,6 +342,7 @@ files:
350
342
  - lib/active_support/current_attributes.rb
351
343
  - lib/active_support/current_attributes/test_helper.rb
352
344
  - lib/active_support/deep_mergeable.rb
345
+ - lib/active_support/delegation.rb
353
346
  - lib/active_support/dependencies.rb
354
347
  - lib/active_support/dependencies/autoload.rb
355
348
  - lib/active_support/dependencies/interlock.rb
@@ -359,7 +352,6 @@ files:
359
352
  - lib/active_support/deprecation/constant_accessor.rb
360
353
  - lib/active_support/deprecation/deprecators.rb
361
354
  - lib/active_support/deprecation/disallowed.rb
362
- - lib/active_support/deprecation/instance_delegator.rb
363
355
  - lib/active_support/deprecation/method_wrappers.rb
364
356
  - lib/active_support/deprecation/proxy_wrappers.rb
365
357
  - lib/active_support/deprecation/reporting.rb
@@ -445,7 +437,6 @@ files:
445
437
  - lib/active_support/railtie.rb
446
438
  - lib/active_support/reloader.rb
447
439
  - lib/active_support/rescuable.rb
448
- - lib/active_support/ruby_features.rb
449
440
  - lib/active_support/secure_compare_rotator.rb
450
441
  - lib/active_support/security_utils.rb
451
442
  - lib/active_support/string_inquirer.rb
@@ -471,6 +462,7 @@ files:
471
462
  - lib/active_support/testing/stream.rb
472
463
  - lib/active_support/testing/strict_warnings.rb
473
464
  - lib/active_support/testing/tagged_logging.rb
465
+ - lib/active_support/testing/tests_without_assertions.rb
474
466
  - lib/active_support/testing/time_helpers.rb
475
467
  - lib/active_support/time.rb
476
468
  - lib/active_support/time_with_zone.rb
@@ -488,10 +480,10 @@ licenses:
488
480
  - MIT
489
481
  metadata:
490
482
  bug_tracker_uri: https://github.com/rails/rails/issues
491
- changelog_uri: https://github.com/rails/rails/blob/v7.1.5.1/activesupport/CHANGELOG.md
492
- documentation_uri: https://api.rubyonrails.org/v7.1.5.1/
483
+ changelog_uri: https://github.com/rails/rails/blob/v7.2.2.1/activesupport/CHANGELOG.md
484
+ documentation_uri: https://api.rubyonrails.org/v7.2.2.1/
493
485
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
494
- source_code_uri: https://github.com/rails/rails/tree/v7.1.5.1/activesupport
486
+ source_code_uri: https://github.com/rails/rails/tree/v7.2.2.1/activesupport
495
487
  rubygems_mfa_required: 'true'
496
488
  post_install_message:
497
489
  rdoc_options:
@@ -503,7 +495,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
503
495
  requirements:
504
496
  - - ">="
505
497
  - !ruby/object:Gem::Version
506
- version: 2.7.0
498
+ version: 3.1.0
507
499
  required_rubygems_version: !ruby/object:Gem::Requirement
508
500
  requirements:
509
501
  - - ">="
@@ -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
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveSupport
4
- module RubyFeatures # :nodoc:
5
- CLASS_SUBCLASSES = Class.method_defined?(:subclasses) # RUBY_VERSION >= "3.1"
6
- end
7
- end