activesupport 7.2.3 → 7.2.4
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 +46 -0
- data/lib/active_support/cache/mem_cache_store.rb +3 -0
- data/lib/active_support/core_ext/object/json.rb +1 -1
- data/lib/active_support/core_ext/string/output_safety.rb +3 -1
- data/lib/active_support/gem_version.rb +1 -1
- data/lib/active_support/inflector/methods.rb +2 -2
- data/lib/active_support/json/decoding.rb +1 -1
- data/lib/active_support/json/encoding.rb +1 -1
- data/lib/active_support/message_pack/extensions.rb +1 -1
- data/lib/active_support/number_helper/number_converter.rb +1 -1
- data/lib/active_support/number_helper/number_to_delimited_converter.rb +18 -5
- metadata +17 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 00b56e0cccfa6661d29d9f1704ee5553874e194cca60cb2be1778adcb5aa1c83
|
|
4
|
+
data.tar.gz: 201046e3d5e25d6f61d82efb984c847414d8553dde0dafcd073a3208576782db
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9796848b434671fac64d1510be706c6c6076faf126bd5c71c7f2559151006f0750cbe2f53e60526fb49e62bcce7b76598e76a11adefc5f62f4aa611293bbb86b
|
|
7
|
+
data.tar.gz: c906e9c1009d202c44dc4f4fe5f133ac694d88706586ae6f6fa302cbf07de62b29e355d5c36cc381a400bc6e167d9d1a2ae4f01b113436fe3eb67f60063aa236
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,49 @@
|
|
|
1
|
+
## Rails 7.2.4 (September 24, 2026) ##
|
|
2
|
+
|
|
3
|
+
* Improve `number_to_delimited` performance when `delimiter_pattern` is not specified.
|
|
4
|
+
|
|
5
|
+
*Shinichi Maeshima*
|
|
6
|
+
|
|
7
|
+
* Silence Dalli 4.0+ warning when using `ActiveSupport::Cache::MemCacheStore`.
|
|
8
|
+
|
|
9
|
+
*zzak*
|
|
10
|
+
|
|
11
|
+
* Fix `ActiveSupport::Inflector.humanize` with international characters.
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
ActiveSupport::Inflector.humanize("áÉÍÓÚ") # => "Áéíóú"
|
|
15
|
+
ActiveSupport::Inflector.humanize("аБВГДЕ") # => "Абвгде"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
*Jose Luis Duran*
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## Rails 7.2.3.2 (July 29, 2026) ##
|
|
22
|
+
|
|
23
|
+
* No changes.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Rails 7.2.3.1 (March 23, 2026) ##
|
|
27
|
+
|
|
28
|
+
* Reject scientific notation in NumberConverter
|
|
29
|
+
|
|
30
|
+
[CVE-2026-33176]
|
|
31
|
+
|
|
32
|
+
*Jean Boussier*
|
|
33
|
+
|
|
34
|
+
* Fix `SafeBuffer#%` to preserve unsafe status
|
|
35
|
+
|
|
36
|
+
[CVE-2026-33170]
|
|
37
|
+
|
|
38
|
+
*Jean Boussier*
|
|
39
|
+
|
|
40
|
+
* Improve performance of NumberToDelimitedConverter
|
|
41
|
+
|
|
42
|
+
[CVE-2026-33169]
|
|
43
|
+
|
|
44
|
+
*Jean Boussier*
|
|
45
|
+
|
|
46
|
+
|
|
1
47
|
## Rails 7.2.3 (October 28, 2025) ##
|
|
2
48
|
|
|
3
49
|
* Fix `Enumerable#sole` to return the full tuple instead of just the first element of the tuple.
|
|
@@ -90,6 +90,9 @@ module ActiveSupport
|
|
|
90
90
|
# The value "compress: false" prevents duplicate compression within Dalli.
|
|
91
91
|
@mem_cache_options[:compress] = false
|
|
92
92
|
(OVERRIDDEN_OPTIONS - %i(compress)).each { |name| @mem_cache_options.delete(name) }
|
|
93
|
+
# Set the default serializer for Dalli to prevent warning about
|
|
94
|
+
# inheriting the default serializer.
|
|
95
|
+
@mem_cache_options[:serializer] = Marshal
|
|
93
96
|
@data = self.class.build_mem_cache(*(addresses + [@mem_cache_options]))
|
|
94
97
|
end
|
|
95
98
|
|
|
@@ -128,7 +128,9 @@ module ActiveSupport # :nodoc:
|
|
|
128
128
|
escaped_args = Array(args).map { |arg| explicit_html_escape_interpolated_argument(arg) }
|
|
129
129
|
end
|
|
130
130
|
|
|
131
|
-
self.class.new(super(escaped_args))
|
|
131
|
+
new_safe_buffer = self.class.new(super(escaped_args))
|
|
132
|
+
new_safe_buffer.instance_variable_set(:@html_safe, @html_safe)
|
|
133
|
+
new_safe_buffer
|
|
132
134
|
end
|
|
133
135
|
|
|
134
136
|
attr_reader :html_safe
|
|
@@ -143,13 +143,13 @@ module ActiveSupport
|
|
|
143
143
|
result.delete_suffix!(" id")
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
-
result.gsub!(/([
|
|
146
|
+
result.gsub!(/([[[:alpha:]]\d]+)/i) do |match|
|
|
147
147
|
match.downcase!
|
|
148
148
|
inflections.acronyms[match] || match
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
if capitalize
|
|
152
|
-
result.sub!(/\A
|
|
152
|
+
result.sub!(/\A[[:alpha:]]/) do |match|
|
|
153
153
|
match.upcase!
|
|
154
154
|
match
|
|
155
155
|
end
|
|
@@ -20,7 +20,7 @@ module ActiveSupport
|
|
|
20
20
|
# ActiveSupport::JSON.decode("{\"team\":\"rails\",\"players\":\"36\"}")
|
|
21
21
|
# # => {"team" => "rails", "players" => "36"}
|
|
22
22
|
def decode(json)
|
|
23
|
-
data = ::JSON.parse(json
|
|
23
|
+
data = ::JSON.parse(json)
|
|
24
24
|
|
|
25
25
|
if ActiveSupport.parse_json_times
|
|
26
26
|
convert_dates_from(data)
|
|
@@ -7,8 +7,6 @@ module ActiveSupport
|
|
|
7
7
|
class NumberToDelimitedConverter < NumberConverter # :nodoc:
|
|
8
8
|
self.validate_float = true
|
|
9
9
|
|
|
10
|
-
DEFAULT_DELIMITER_REGEX = /(\d)(?=(\d\d\d)+(?!\d))/
|
|
11
|
-
|
|
12
10
|
def convert
|
|
13
11
|
parts.join(options[:separator])
|
|
14
12
|
end
|
|
@@ -16,14 +14,29 @@ module ActiveSupport
|
|
|
16
14
|
private
|
|
17
15
|
def parts
|
|
18
16
|
left, right = number.to_s.split(".")
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
if delimiter_pattern
|
|
18
|
+
left.gsub!(delimiter_pattern) do |digit_to_delimit|
|
|
19
|
+
"#{digit_to_delimit}#{options[:delimiter]}"
|
|
20
|
+
end
|
|
21
|
+
else
|
|
22
|
+
left_parts = []
|
|
23
|
+
offset = left.size % 3
|
|
24
|
+
if offset > 0
|
|
25
|
+
left_parts << left[0, offset]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
(left.size / 3).times do |i|
|
|
29
|
+
left_parts << left[offset + (i * 3), 3]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
left = left_parts.join(options[:delimiter])
|
|
21
33
|
end
|
|
34
|
+
|
|
22
35
|
[left, right].compact
|
|
23
36
|
end
|
|
24
37
|
|
|
25
38
|
def delimiter_pattern
|
|
26
|
-
options
|
|
39
|
+
options[:delimiter_pattern]
|
|
27
40
|
end
|
|
28
41
|
end
|
|
29
42
|
end
|
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.2.
|
|
4
|
+
version: 7.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Heinemeier Hansson
|
|
@@ -76,6 +76,9 @@ dependencies:
|
|
|
76
76
|
- - ">="
|
|
77
77
|
- !ruby/object:Gem::Version
|
|
78
78
|
version: 2.2.5
|
|
79
|
+
- - "<"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '3'
|
|
79
82
|
type: :runtime
|
|
80
83
|
prerelease: false
|
|
81
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -83,6 +86,9 @@ dependencies:
|
|
|
83
86
|
- - ">="
|
|
84
87
|
- !ruby/object:Gem::Version
|
|
85
88
|
version: 2.2.5
|
|
89
|
+
- - "<"
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: '3'
|
|
86
92
|
- !ruby/object:Gem::Dependency
|
|
87
93
|
name: minitest
|
|
88
94
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -90,6 +96,9 @@ dependencies:
|
|
|
90
96
|
- - ">="
|
|
91
97
|
- !ruby/object:Gem::Version
|
|
92
98
|
version: '5.1'
|
|
99
|
+
- - "<"
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
version: '6'
|
|
93
102
|
type: :runtime
|
|
94
103
|
prerelease: false
|
|
95
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -97,6 +106,9 @@ dependencies:
|
|
|
97
106
|
- - ">="
|
|
98
107
|
- !ruby/object:Gem::Version
|
|
99
108
|
version: '5.1'
|
|
109
|
+
- - "<"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '6'
|
|
100
112
|
- !ruby/object:Gem::Dependency
|
|
101
113
|
name: base64
|
|
102
114
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -479,10 +491,10 @@ licenses:
|
|
|
479
491
|
- MIT
|
|
480
492
|
metadata:
|
|
481
493
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
|
482
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.2.
|
|
483
|
-
documentation_uri: https://api.rubyonrails.org/v7.2.
|
|
494
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.2.4/activesupport/CHANGELOG.md
|
|
495
|
+
documentation_uri: https://api.rubyonrails.org/v7.2.4/
|
|
484
496
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
|
485
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.2.
|
|
497
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.2.4/activesupport
|
|
486
498
|
rubygems_mfa_required: 'true'
|
|
487
499
|
rdoc_options:
|
|
488
500
|
- "--encoding"
|
|
@@ -500,7 +512,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
500
512
|
- !ruby/object:Gem::Version
|
|
501
513
|
version: '0'
|
|
502
514
|
requirements: []
|
|
503
|
-
rubygems_version:
|
|
515
|
+
rubygems_version: 4.0.20
|
|
504
516
|
specification_version: 4
|
|
505
517
|
summary: A toolkit of support libraries and Ruby core extensions extracted from the
|
|
506
518
|
Rails framework.
|