activesupport 7.0.6 → 7.0.8
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 +4 -4
- data/CHANGELOG.md +50 -0
- data/lib/active_support/cache/redis_cache_store.rb +9 -7
- data/lib/active_support/cache/strategy/local_cache.rb +1 -1
- data/lib/active_support/core_ext/date/deprecated_conversions.rb +15 -1
- data/lib/active_support/core_ext/date_time/deprecated_conversions.rb +15 -1
- data/lib/active_support/core_ext/enumerable.rb +17 -12
- data/lib/active_support/core_ext/range/deprecated_conversions.rb +11 -1
- data/lib/active_support/core_ext/time/deprecated_conversions.rb +52 -1
- data/lib/active_support/encrypted_file.rb +8 -9
- data/lib/active_support/evented_file_update_checker.rb +3 -1
- data/lib/active_support/gem_version.rb +1 -1
- data/lib/active_support/inflector/methods.rb +1 -1
- data/lib/active_support/time_with_zone.rb +2 -21
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f54026bf0b86c232b4ce46a96f39aa94fe8acdad8eae5c0a194046f896dc0ff
|
4
|
+
data.tar.gz: 3762e1c4397383cb90c0fe6513e260194c1af0afa0292284842953d5153d621a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74194c0b535b0ae5b29e32c85f205bf45a7626200f9946582627c440fa19cd9a8547109f3b1e21d66086a64cae8d83248fb39848cf9bf6f47319fa224c11e538
|
7
|
+
data.tar.gz: 3cead0a36efa404c9d1b92b1b7330e797f0802b146a20f8a5468ca7ff4c401cab628aa4ee7578cef133298f4edf4da3b95a0df294a962c4de0ac997da1afc421
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,53 @@
|
|
1
|
+
## Rails 7.0.8 (September 09, 2023) ##
|
2
|
+
|
3
|
+
* Fix `TimeWithZone` still using deprecated `#to_s` when `ENV` or `config` to
|
4
|
+
disable it are set.
|
5
|
+
|
6
|
+
*Hartley McGuire*
|
7
|
+
|
8
|
+
* Fix CacheStore#write_multi when using a distributed Redis cache with a connection pool.
|
9
|
+
|
10
|
+
Fixes [#48938](https://github.com/rails/rails/issues/48938).
|
11
|
+
|
12
|
+
*Jonathan del Strother*
|
13
|
+
|
14
|
+
|
15
|
+
## Rails 7.0.7.2 (August 22, 2023) ##
|
16
|
+
|
17
|
+
* No changes.
|
18
|
+
|
19
|
+
|
20
|
+
## Rails 7.0.7.1 (August 22, 2023) ##
|
21
|
+
|
22
|
+
* Use a temporary file for storing unencrypted files while editing
|
23
|
+
|
24
|
+
[CVE-2023-38037]
|
25
|
+
|
26
|
+
|
27
|
+
## Rails 7.0.7 (August 09, 2023) ##
|
28
|
+
|
29
|
+
* Fix `Cache::NullStore` with local caching for repeated reads.
|
30
|
+
|
31
|
+
*fatkodima*
|
32
|
+
|
33
|
+
* Fix `to_s` with no arguments not respecting custom `:default` formats
|
34
|
+
|
35
|
+
*Hartley McGuire*
|
36
|
+
|
37
|
+
* Fix `ActiveSupport::Inflector.humanize(nil)` raising ``NoMethodError: undefined method `end_with?' for nil:NilClass``.
|
38
|
+
|
39
|
+
*James Robinson*
|
40
|
+
|
41
|
+
* Fix `Enumerable#sum` for `Enumerator#lazy`.
|
42
|
+
|
43
|
+
*fatkodima*, *Matthew Draper*, *Jonathan Hefner*
|
44
|
+
|
45
|
+
* Improve error message when EventedFileUpdateChecker is used without a
|
46
|
+
compatible version of the Listen gem
|
47
|
+
|
48
|
+
*Hartley McGuire*
|
49
|
+
|
50
|
+
|
1
51
|
## Rails 7.0.6 (June 29, 2023) ##
|
2
52
|
|
3
53
|
* Fix `EncryptedConfiguration` returning incorrect values for some `Hash`
|
@@ -313,13 +313,15 @@ module ActiveSupport
|
|
313
313
|
|
314
314
|
private
|
315
315
|
def set_redis_capabilities
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
316
|
+
redis.with do |c|
|
317
|
+
case c
|
318
|
+
when Redis::Distributed
|
319
|
+
@mget_capable = true
|
320
|
+
@mset_capable = false
|
321
|
+
else
|
322
|
+
@mget_capable = true
|
323
|
+
@mset_capable = true
|
324
|
+
end
|
323
325
|
end
|
324
326
|
end
|
325
327
|
|
@@ -124,7 +124,7 @@ module ActiveSupport
|
|
124
124
|
|
125
125
|
local_entries = local_cache.read_multi_entries(keys)
|
126
126
|
local_entries.transform_values! do |payload|
|
127
|
-
deserialize_entry(payload)
|
127
|
+
deserialize_entry(payload)&.value
|
128
128
|
end
|
129
129
|
missed_keys = keys - local_entries.keys
|
130
130
|
|
@@ -15,7 +15,21 @@ class Date
|
|
15
15
|
strftime(formatter)
|
16
16
|
end
|
17
17
|
elsif format == NOT_SET
|
18
|
-
|
18
|
+
if formatter = DATE_FORMATS[:default]
|
19
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
20
|
+
Using a :default format for Date#to_s is deprecated. Please use Date#to_fs instead. If you fixed all places
|
21
|
+
inside your application that you see this deprecation, you can set
|
22
|
+
`ENV['RAILS_DISABLE_DEPRECATED_TO_S_CONVERSION']` to `"true"` in the `config/application.rb` file before
|
23
|
+
the `Bundler.require` call to fix all the callers outside of your application.
|
24
|
+
MSG
|
25
|
+
if formatter.respond_to?(:call)
|
26
|
+
formatter.call(self).to_s
|
27
|
+
else
|
28
|
+
strftime(formatter)
|
29
|
+
end
|
30
|
+
else
|
31
|
+
to_default_s
|
32
|
+
end
|
19
33
|
else
|
20
34
|
ActiveSupport::Deprecation.warn(
|
21
35
|
"Date#to_s(#{format.inspect}) is deprecated. Please use Date#to_fs(#{format.inspect}) instead."
|
@@ -11,7 +11,21 @@ class DateTime
|
|
11
11
|
)
|
12
12
|
formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
|
13
13
|
elsif format == NOT_SET
|
14
|
-
|
14
|
+
if formatter = ::Time::DATE_FORMATS[:default]
|
15
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
16
|
+
Using a :default format for DateTime#to_s is deprecated. Please use DateTime#to_fs instead. If you fixed all
|
17
|
+
places inside your application that you see this deprecation, you can set
|
18
|
+
`ENV['RAILS_DISABLE_DEPRECATED_TO_S_CONVERSION']` to `"true"` in the `config/application.rb` file before
|
19
|
+
the `Bundler.require` call to fix all the callers outside of your application.
|
20
|
+
MSG
|
21
|
+
if formatter.respond_to?(:call)
|
22
|
+
formatter.call(self).to_s
|
23
|
+
else
|
24
|
+
strftime(formatter)
|
25
|
+
end
|
26
|
+
else
|
27
|
+
to_default_s
|
28
|
+
end
|
15
29
|
else
|
16
30
|
ActiveSupport::Deprecation.warn(
|
17
31
|
"DateTime#to_s(#{format.inspect}) is deprecated. Please use DateTime#to_fs(#{format.inspect}) instead."
|
@@ -76,19 +76,24 @@ module Enumerable
|
|
76
76
|
_original_sum_with_required_identity(identity, &block)
|
77
77
|
elsif block_given?
|
78
78
|
map(&block).sum
|
79
|
-
# we check `first(1) == []` to check if we have an
|
80
|
-
# empty Enumerable; checking `empty?` would return
|
81
|
-
# true for `[nil]`, which we want to deprecate to
|
82
|
-
# keep consistent with Ruby
|
83
|
-
elsif first.is_a?(Numeric) || first(1) == [] || first.respond_to?(:coerce)
|
84
|
-
identity ||= 0
|
85
|
-
_original_sum_with_required_identity(identity, &block)
|
86
79
|
else
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
80
|
+
first = true
|
81
|
+
|
82
|
+
reduce(nil) do |sum, value|
|
83
|
+
if first
|
84
|
+
first = false
|
85
|
+
|
86
|
+
unless value.is_a?(Numeric) || value.respond_to?(:coerce)
|
87
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
88
|
+
Rails 7.0 has deprecated Enumerable.sum in favor of Ruby's native implementation available since 2.4.
|
89
|
+
Sum of non-numeric elements requires an initial argument.
|
90
|
+
MSG
|
91
|
+
end
|
92
|
+
value
|
93
|
+
else
|
94
|
+
sum + value
|
95
|
+
end
|
96
|
+
end || 0
|
92
97
|
end
|
93
98
|
end
|
94
99
|
|
@@ -10,7 +10,17 @@ module ActiveSupport
|
|
10
10
|
)
|
11
11
|
formatter.call(first, last)
|
12
12
|
elsif format == NOT_SET
|
13
|
-
|
13
|
+
if formatter = RangeWithFormat::RANGE_FORMATS[:default]
|
14
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
15
|
+
Using a :default format for Range#to_s is deprecated. Please use Range#to_fs instead. If you fixed all
|
16
|
+
places inside your application that you see this deprecation, you can set
|
17
|
+
`ENV['RAILS_DISABLE_DEPRECATED_TO_S_CONVERSION']` to `"true"` in the `config/application.rb` file before
|
18
|
+
the `Bundler.require` call to fix all the callers outside of your application.
|
19
|
+
MSG
|
20
|
+
formatter.call(first, last)
|
21
|
+
else
|
22
|
+
super()
|
23
|
+
end
|
14
24
|
else
|
15
25
|
ActiveSupport::Deprecation.warn(
|
16
26
|
"Range#to_s(#{format.inspect}) is deprecated. Please use Range#to_fs(#{format.inspect}) instead."
|
@@ -11,7 +11,21 @@ class Time
|
|
11
11
|
)
|
12
12
|
formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
|
13
13
|
elsif format == NOT_SET
|
14
|
-
|
14
|
+
if formatter = ::Time::DATE_FORMATS[:default]
|
15
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
16
|
+
Using a :default format for Time#to_s is deprecated. Please use Time#to_fs instead. If you fixed all places
|
17
|
+
inside your application that you see this deprecation, you can set
|
18
|
+
`ENV['RAILS_DISABLE_DEPRECATED_TO_S_CONVERSION']` to `"true"` in the `config/application.rb` file before
|
19
|
+
the `Bundler.require` call to fix all the callers outside of your application.
|
20
|
+
MSG
|
21
|
+
if formatter.respond_to?(:call)
|
22
|
+
formatter.call(self).to_s
|
23
|
+
else
|
24
|
+
strftime(formatter)
|
25
|
+
end
|
26
|
+
else
|
27
|
+
to_default_s
|
28
|
+
end
|
15
29
|
else
|
16
30
|
ActiveSupport::Deprecation.warn(
|
17
31
|
"Time#to_s(#{format.inspect}) is deprecated. Please use Time#to_fs(#{format.inspect}) instead."
|
@@ -20,3 +34,40 @@ class Time
|
|
20
34
|
end
|
21
35
|
end
|
22
36
|
end
|
37
|
+
|
38
|
+
module ActiveSupport
|
39
|
+
class TimeWithZone
|
40
|
+
NOT_SET = Object.new # :nodoc:
|
41
|
+
|
42
|
+
def to_s(format = NOT_SET) # :nodoc:
|
43
|
+
if format == :db
|
44
|
+
ActiveSupport::Deprecation.warn(
|
45
|
+
"TimeWithZone#to_s(:db) is deprecated. Please use TimeWithZone#to_fs(:db) instead."
|
46
|
+
)
|
47
|
+
utc.to_fs(format)
|
48
|
+
elsif formatter = ::Time::DATE_FORMATS[format]
|
49
|
+
ActiveSupport::Deprecation.warn(
|
50
|
+
"TimeWithZone#to_s(#{format.inspect}) is deprecated. Please use TimeWithZone#to_fs(#{format.inspect}) instead."
|
51
|
+
)
|
52
|
+
formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
|
53
|
+
elsif format == NOT_SET
|
54
|
+
if formatter = ::Time::DATE_FORMATS[:default]
|
55
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
56
|
+
Using a :default format for TimeWithZone#to_s is deprecated. Please use TimeWithZone#to_fs instead.
|
57
|
+
If you fixed all places inside your application that you see this deprecation, you can set
|
58
|
+
`ENV['RAILS_DISABLE_DEPRECATED_TO_S_CONVERSION']` to `"true"` in the `config/application.rb` file before
|
59
|
+
the `Bundler.require` call to fix all the callers outside of your application.
|
60
|
+
MSG
|
61
|
+
formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
|
62
|
+
else
|
63
|
+
"#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby Time#to_s format
|
64
|
+
end
|
65
|
+
else
|
66
|
+
ActiveSupport::Deprecation.warn(
|
67
|
+
"TimeWithZone#to_s(#{format.inspect}) is deprecated. Please use TimeWithZone#to_fs(#{format.inspect}) instead."
|
68
|
+
)
|
69
|
+
"#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby Time#to_s format
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "pathname"
|
4
|
-
require "
|
4
|
+
require "tempfile"
|
5
5
|
require "active_support/message_encryptor"
|
6
6
|
|
7
7
|
module ActiveSupport
|
@@ -81,17 +81,16 @@ module ActiveSupport
|
|
81
81
|
|
82
82
|
private
|
83
83
|
def writing(contents)
|
84
|
-
|
85
|
-
|
86
|
-
|
84
|
+
Tempfile.create(["", "-" + content_path.basename.to_s.chomp(".enc")]) do |tmp_file|
|
85
|
+
tmp_path = Pathname.new(tmp_file)
|
86
|
+
tmp_path.binwrite contents
|
87
87
|
|
88
|
-
|
88
|
+
yield tmp_path
|
89
89
|
|
90
|
-
|
90
|
+
updated_contents = tmp_path.binread
|
91
91
|
|
92
|
-
|
93
|
-
|
94
|
-
FileUtils.rm(tmp_path) if tmp_path&.exist?
|
92
|
+
write(updated_contents) if updated_contents != contents
|
93
|
+
end
|
95
94
|
end
|
96
95
|
|
97
96
|
|
@@ -136,7 +136,7 @@ module ActiveSupport
|
|
136
136
|
|
137
137
|
result.tr!("_", " ")
|
138
138
|
result.lstrip!
|
139
|
-
if !keep_id_suffix && lower_case_and_underscored_word
|
139
|
+
if !keep_id_suffix && lower_case_and_underscored_word&.end_with?("_id")
|
140
140
|
result.delete_suffix!(" id")
|
141
141
|
end
|
142
142
|
|
@@ -206,28 +206,9 @@ module ActiveSupport
|
|
206
206
|
end
|
207
207
|
alias_method :rfc822, :rfc2822
|
208
208
|
|
209
|
-
NOT_SET = Object.new # :nodoc:
|
210
|
-
|
211
209
|
# Returns a string of the object's date and time.
|
212
|
-
def to_s
|
213
|
-
|
214
|
-
ActiveSupport::Deprecation.warn(
|
215
|
-
"TimeWithZone#to_s(:db) is deprecated. Please use TimeWithZone#to_fs(:db) instead."
|
216
|
-
)
|
217
|
-
utc.to_fs(format)
|
218
|
-
elsif formatter = ::Time::DATE_FORMATS[format]
|
219
|
-
ActiveSupport::Deprecation.warn(
|
220
|
-
"TimeWithZone#to_s(#{format.inspect}) is deprecated. Please use TimeWithZone#to_fs(#{format.inspect}) instead."
|
221
|
-
)
|
222
|
-
formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
|
223
|
-
elsif format == NOT_SET
|
224
|
-
"#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby Time#to_s format
|
225
|
-
else
|
226
|
-
ActiveSupport::Deprecation.warn(
|
227
|
-
"TimeWithZone#to_s(#{format.inspect}) is deprecated. Please use TimeWithZone#to_fs(#{format.inspect}) instead."
|
228
|
-
)
|
229
|
-
"#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby Time#to_s format
|
230
|
-
end
|
210
|
+
def to_s
|
211
|
+
"#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby Time#to_s format
|
231
212
|
end
|
232
213
|
|
233
214
|
# Returns a string of the object's date and time.
|
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.0.
|
4
|
+
version: 7.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -359,12 +359,12 @@ licenses:
|
|
359
359
|
- MIT
|
360
360
|
metadata:
|
361
361
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
362
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.0.
|
363
|
-
documentation_uri: https://api.rubyonrails.org/v7.0.
|
362
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.0.8/activesupport/CHANGELOG.md
|
363
|
+
documentation_uri: https://api.rubyonrails.org/v7.0.8/
|
364
364
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
365
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.0.
|
365
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.0.8/activesupport
|
366
366
|
rubygems_mfa_required: 'true'
|
367
|
-
post_install_message:
|
367
|
+
post_install_message:
|
368
368
|
rdoc_options:
|
369
369
|
- "--encoding"
|
370
370
|
- UTF-8
|
@@ -381,8 +381,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
381
381
|
- !ruby/object:Gem::Version
|
382
382
|
version: '0'
|
383
383
|
requirements: []
|
384
|
-
rubygems_version: 3.4.
|
385
|
-
signing_key:
|
384
|
+
rubygems_version: 3.4.18
|
385
|
+
signing_key:
|
386
386
|
specification_version: 4
|
387
387
|
summary: A toolkit of support libraries and Ruby core extensions extracted from the
|
388
388
|
Rails framework.
|