activesupport 7.2.0.beta1 → 7.2.0.beta2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e43bd2e8809b8fdeeb3e6235678e3791be3fb235c8afbb2ff0bd6c265120931e
4
- data.tar.gz: d1db0dcc3e5c4c4f9e7b6662b6d6a9cd5e107dd26a8becfb6a29617f185486f0
3
+ metadata.gz: 64a68e8272dc370b1b26c76cfc52990f1d55b0356e177baa1f6b913bf0064945
4
+ data.tar.gz: 57262080af9d7a9727fb2ac430f2fdeefd98714c0c47c899af1ea3a3f5ac445e
5
5
  SHA512:
6
- metadata.gz: fa5134053c7d9e38e4aed9f149f8c988487a0d482119070cd99edcca242f4701387d2a8370b60efb09d1d50cca85e57d8950685c49d83a6d12988f3f9d4d0c5e
7
- data.tar.gz: 519b1b079064c4ffce15664002efc7b240b035569a5356dbabd5e6ca799624598ba908db03a6108043bcdade5947262e3becc243925ba64848d40e29426d0bc6
6
+ metadata.gz: 145d66aa10855ae55249f6c29e8680406835c79bc1f1f8dc8d1ec6c254f2c985c7de7369760c336df537120de83d05ef20dc9c7b6426110b19a3eb717d2d9415
7
+ data.tar.gz: ad780c985f5f24a1aba645ae0b9c5c425ee0dd872ddc7cc44646e6febabba0505d1f18a841fc95e1db894a7069fc884e32a7883607085c7b0a77560799ed0bb5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## Rails 7.2.0.beta2 (June 04, 2024) ##
2
+
3
+ * Define `Digest::UUID.nil_uuid`, which returns the so-called nil UUID.
4
+
5
+ *Xavier Noria*
6
+
1
7
  ## Rails 7.2.0.beta1 (May 29, 2024) ##
2
8
 
3
9
  * Support `duration` type in `ActiveSupport::XmlMini`.
@@ -122,18 +128,6 @@
122
128
 
123
129
  *Sean Doyle*
124
130
 
125
- * Remove deprecated support for the pre-Ruby 2.4 behavior of `to_time` returning a `Time` object with local timezone.
126
-
127
- *Rafael Mendonça França*
128
-
129
- * Deprecate `config.active_support.to_time_preserves_timezone`.
130
-
131
- *Rafael Mendonça França*
132
-
133
- * Deprecate `DateAndTime::Compatibility.preserve_timezone`.
134
-
135
- *Rafael Mendonça França*
136
-
137
131
  * Yield instance to `Object#with` block.
138
132
 
139
133
  ```ruby
@@ -229,6 +229,7 @@ module ActiveSupport
229
229
  private
230
230
  def dispatch(&block)
231
231
  @broadcasts.each { |logger| block.call(logger) }
232
+ true
232
233
  end
233
234
 
234
235
  def method_missing(name, ...)
@@ -1,9 +1,45 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "active_support/core_ext/module/attribute_accessors"
4
+ require "active_support/core_ext/module/redefine_method"
4
5
 
5
6
  module DateAndTime
6
7
  module Compatibility
8
+ # If true, +to_time+ preserves the timezone offset of receiver.
9
+ #
10
+ # NOTE: With Ruby 2.4+ the default for +to_time+ changed from
11
+ # converting to the local system time, to preserving the offset
12
+ # of the receiver. For backwards compatibility we're overriding
13
+ # this behavior, but new apps will have an initializer that sets
14
+ # this to true, because the new behavior is preferred.
15
+ mattr_accessor :preserve_timezone, instance_accessor: false, default: nil
16
+
17
+ singleton_class.silence_redefinition_of_method :preserve_timezone
18
+
19
+ #--
20
+ # This re-implements the behaviour of the mattr_reader, instead
21
+ # of prepending on to it, to avoid overcomplicating a module that
22
+ # is in turn included in several places. This will all go away in
23
+ # Rails 8.0 anyway.
24
+ def self.preserve_timezone # :nodoc:
25
+ if @@preserve_timezone.nil?
26
+ # Only warn once, the first time the value is used (which should
27
+ # be the first time #to_time is called).
28
+ ActiveSupport.deprecator.warn(
29
+ "to_time will always preserve the timezone offset of the receiver in Rails 8.0. " \
30
+ "To opt in to the new behavior, set `ActiveSupport.to_time_preserves_timezone = true`."
31
+ )
32
+
33
+ @@preserve_timezone = false
34
+ end
35
+
36
+ @@preserve_timezone
37
+ end
38
+
39
+ def preserve_timezone # :nodoc:
40
+ Compatibility.preserve_timezone
41
+ end
42
+
7
43
  # Change the output of <tt>ActiveSupport::TimeZone.utc_to_local</tt>.
8
44
  #
9
45
  # When +true+, it returns local times with a UTC offset, with +false+ local
@@ -18,17 +54,5 @@ module DateAndTime
18
54
  # # With `utc_to_local_returns_utc_offset_times = true`, local time is returned with UTC offset:
19
55
  # zone.utc_to_local(Time.utc(2000, 1)) # => 1999-12-31 19:00:00 -0500
20
56
  mattr_accessor :utc_to_local_returns_utc_offset_times, instance_writer: false, default: false
21
-
22
- def self.preserve_timezone
23
- ActiveSupport.deprecator.warn(
24
- "`DateAndTime::Compatibility.preserve_timezone` has been deprecated and will be removed in Rails 7.3."
25
- )
26
- end
27
-
28
- def self.preserve_timezone=(value)
29
- ActiveSupport.deprecator.warn(
30
- "`DateAndTime::Compatibility.preserve_timezone=` has been deprecated and will be removed in Rails 7.3."
31
- )
32
- end
33
57
  end
34
58
  end
@@ -8,9 +8,11 @@ class DateTime
8
8
 
9
9
  silence_redefinition_of_method :to_time
10
10
 
11
- # Return an instance of +Time+ with the same UTC offset
12
- # as +self+.
11
+ # Either return an instance of +Time+ with the same UTC offset
12
+ # as +self+ or an instance of +Time+ representing the same time
13
+ # in the local system timezone depending on the setting of
14
+ # on the setting of +ActiveSupport.to_time_preserves_timezone+.
13
15
  def to_time
14
- getlocal(utc_offset)
16
+ preserve_timezone ? getlocal(utc_offset) : getlocal
15
17
  end
16
18
  end
@@ -53,6 +53,12 @@ module Digest
53
53
  SecureRandom.uuid
54
54
  end
55
55
 
56
+ # Returns the nil UUID. This is a special form of UUID that is specified to
57
+ # have all 128 bits set to zero.
58
+ def self.nil_uuid
59
+ "00000000-0000-0000-0000-000000000000"
60
+ end
61
+
56
62
  def self.pack_uuid_namespace(namespace)
57
63
  if [DNS_NAMESPACE, OID_NAMESPACE, URL_NAMESPACE, X500_NAMESPACE].include?(namespace)
58
64
  namespace
@@ -25,7 +25,7 @@ class Module
25
25
  def attr_internal_naming_format=(format)
26
26
  if format.start_with?("@")
27
27
  ActiveSupport.deprecator.warn <<~MESSAGE
28
- Setting `attr_internal_naming_format` with a `@` prefix is deprecated and will be removed in Rails 7.3.
28
+ Setting `attr_internal_naming_format` with a `@` prefix is deprecated and will be removed in Rails 8.0.
29
29
 
30
30
  You can simply replace #{format.inspect} by #{format.delete_prefix("@").inspect}.
31
31
  MESSAGE
@@ -8,8 +8,9 @@ class Time
8
8
 
9
9
  silence_redefinition_of_method :to_time
10
10
 
11
- # Returns +self+.
11
+ # Either return +self+ or the time in the local system timezone depending
12
+ # on the setting of +ActiveSupport.to_time_preserves_timezone+.
12
13
  def to_time
13
- self
14
+ preserve_timezone ? self : getlocal
14
15
  end
15
16
  end
@@ -152,7 +152,7 @@ module ActiveSupport
152
152
 
153
153
  def _extract_callstack(callstack)
154
154
  ActiveSupport.deprecator.warn(<<~MESSAGE)
155
- Passing the result of `caller` to ActiveSupport::Deprecation#warn is deprecated and will be removed in Rails 7.3.
155
+ Passing the result of `caller` to ActiveSupport::Deprecation#warn is deprecated and will be removed in Rails 8.0.
156
156
 
157
157
  Please pass the result of `caller_locations` instead.
158
158
  MESSAGE
@@ -68,7 +68,7 @@ module ActiveSupport
68
68
  # and the second is a library name.
69
69
  #
70
70
  # ActiveSupport::Deprecation.new('2.0', 'MyLibrary')
71
- def initialize(deprecation_horizon = "7.3", gem_name = "Rails")
71
+ def initialize(deprecation_horizon = "8.0", gem_name = "Rails")
72
72
  self.gem_name = gem_name
73
73
  self.deprecation_horizon = deprecation_horizon
74
74
  # By default, warnings are not silenced and debugging is off.
@@ -10,7 +10,7 @@ module ActiveSupport
10
10
  MAJOR = 7
11
11
  MINOR = 2
12
12
  TINY = 0
13
- PRE = "beta1"
13
+ PRE = "beta2"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -12,7 +12,7 @@ module ActiveSupport
12
12
 
13
13
  def self.inherited(_subclass)
14
14
  ::ActiveSupport.deprecator.warn(<<~MSG)
15
- ActiveSupport::ProxyObject is deprecated and will be removed in Rails 7.3.
15
+ ActiveSupport::ProxyObject is deprecated and will be removed in Rails 8.0.
16
16
  Use Ruby's built-in BasicObject instead.
17
17
  MSG
18
18
  end
@@ -479,10 +479,15 @@ module ActiveSupport
479
479
  @to_datetime ||= utc.to_datetime.new_offset(Rational(utc_offset, 86_400))
480
480
  end
481
481
 
482
- # Returns an instance of +Time+ with the same UTC offset
483
- # as +self+.
482
+ # Returns an instance of +Time+, either with the same UTC offset
483
+ # as +self+ or in the local system timezone depending on the setting
484
+ # of +ActiveSupport.to_time_preserves_timezone+.
484
485
  def to_time
485
- @to_time_with_instance_offset ||= getlocal(utc_offset)
486
+ if preserve_timezone
487
+ @to_time_with_instance_offset ||= getlocal(utc_offset)
488
+ else
489
+ @to_time_with_system_offset ||= getlocal
490
+ end
486
491
  end
487
492
 
488
493
  # So that +self+ <tt>acts_like?(:time)</tt>.
@@ -111,15 +111,17 @@ module ActiveSupport
111
111
  end
112
112
 
113
113
  def self.to_time_preserves_timezone
114
- ActiveSupport.deprecator.warn(
115
- "`config.active_support.to_time_preserves_timezone` has been deprecated and will be removed in Rails 7.3."
116
- )
114
+ DateAndTime::Compatibility.preserve_timezone
117
115
  end
118
116
 
119
117
  def self.to_time_preserves_timezone=(value)
120
- ActiveSupport.deprecator.warn(
121
- "`config.active_support.to_time_preserves_timezone` has been deprecated and will be removed in Rails 7.3."
122
- )
118
+ unless value
119
+ ActiveSupport.deprecator.warn(
120
+ "Support for the pre-Ruby 2.4 behavior of to_time has been deprecated and will be removed in Rails 8.0."
121
+ )
122
+ end
123
+
124
+ DateAndTime::Compatibility.preserve_timezone = value
123
125
  end
124
126
 
125
127
  def self.utc_to_local_returns_utc_offset_times
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.2.0.beta1
4
+ version: 7.2.0.beta2
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-05-29 00:00:00.000000000 Z
11
+ date: 2024-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -438,10 +438,10 @@ licenses:
438
438
  - MIT
439
439
  metadata:
440
440
  bug_tracker_uri: https://github.com/rails/rails/issues
441
- changelog_uri: https://github.com/rails/rails/blob/v7.2.0.beta1/activesupport/CHANGELOG.md
442
- documentation_uri: https://api.rubyonrails.org/v7.2.0.beta1/
441
+ changelog_uri: https://github.com/rails/rails/blob/v7.2.0.beta2/activesupport/CHANGELOG.md
442
+ documentation_uri: https://api.rubyonrails.org/v7.2.0.beta2/
443
443
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
444
- source_code_uri: https://github.com/rails/rails/tree/v7.2.0.beta1/activesupport
444
+ source_code_uri: https://github.com/rails/rails/tree/v7.2.0.beta2/activesupport
445
445
  rubygems_mfa_required: 'true'
446
446
  post_install_message:
447
447
  rdoc_options:
@@ -456,11 +456,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
456
456
  version: 3.1.0
457
457
  required_rubygems_version: !ruby/object:Gem::Requirement
458
458
  requirements:
459
- - - ">="
459
+ - - ">"
460
460
  - !ruby/object:Gem::Version
461
- version: '0'
461
+ version: 1.3.1
462
462
  requirements: []
463
- rubygems_version: 3.5.10
463
+ rubygems_version: 3.3.27
464
464
  signing_key:
465
465
  specification_version: 4
466
466
  summary: A toolkit of support libraries and Ruby core extensions extracted from the