activesupport 7.2.3 → 7.2.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d12b3bc49972cf65396ee7cb16b370f76853dde525bf3d111e6da8a5936ab441
4
- data.tar.gz: a97522d2f10dc74dc7d3bc922eb37b3b6c369bd729e26a22e97d250602d6c544
3
+ metadata.gz: 261d0e3b9b660e219ce3e59ae3cbc65626e77898ecfd1f8dc7c8ed96e4121b0c
4
+ data.tar.gz: 8c4d30dde1dab152e5584ec01c9c0863b4a3b9b6451ae0e068d0a3091a3c66a1
5
5
  SHA512:
6
- metadata.gz: 2a89e3f270073d83270087ad960f1236ee794fb833303b1e97121a1f52b20f07ca79d22c879b474d33d9180b2fbc90359619bd20886a8ab978dabcd7df3df4e2
7
- data.tar.gz: 0576fb7d4a4bef1d8e9e8a0bbce32f0fbb74ba626e7bbcacabcf50352aaf3c2f6567e4989debe83095164b1f9a16a31ea9c0a9afe55cd4327ffc645f5acbef2d
6
+ metadata.gz: 3947053b6497e31d25efbaba030b6a0e2fd01a0e1fe260256efd775964cb0df6542b93de6a87da65b1f2385695a3bdbbdd5d829eb4fa6c4ee6af55dca88d1ba2
7
+ data.tar.gz: bcc914be8d4e83f8ded6c746568b91e7a80578437045c145f9dd9c811b3f17d40485080e5566b536b8505a787e91a611597fdf19de129e6c02be7c91e23bfbfe
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## Rails 7.2.3.1 (March 23, 2026) ##
2
+
3
+ * Reject scientific notation in NumberConverter
4
+
5
+ [CVE-2026-33176]
6
+
7
+ *Jean Boussier*
8
+
9
+ * Fix `SafeBuffer#%` to preserve unsafe status
10
+
11
+ [CVE-2026-33170]
12
+
13
+ *Jean Boussier*
14
+
15
+ * Improve performance of NumberToDelimitedConverter
16
+
17
+ [CVE-2026-33169]
18
+
19
+ *Jean Boussier*
20
+
21
+
1
22
  ## Rails 7.2.3 (October 28, 2025) ##
2
23
 
3
24
  * Fix `Enumerable#sole` to return the full tuple instead of just the first element of the tuple.
@@ -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
@@ -10,7 +10,7 @@ module ActiveSupport
10
10
  MAJOR = 7
11
11
  MINOR = 2
12
12
  TINY = 3
13
- PRE = nil
13
+ PRE = "1"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -180,7 +180,7 @@ module ActiveSupport
180
180
  when Float, Rational
181
181
  number.to_d(0)
182
182
  when String
183
- BigDecimal(number, exception: false)
183
+ BigDecimal(number, exception: false) unless number.to_s.match?(/[de]/i)
184
184
  else
185
185
  number.to_d rescue nil
186
186
  end
@@ -16,9 +16,24 @@ module ActiveSupport
16
16
  private
17
17
  def parts
18
18
  left, right = number.to_s.split(".")
19
- left.gsub!(delimiter_pattern) do |digit_to_delimit|
20
- "#{digit_to_delimit}#{options[:delimiter]}"
19
+ if delimiter_pattern
20
+ left.gsub!(delimiter_pattern) do |digit_to_delimit|
21
+ "#{digit_to_delimit}#{options[:delimiter]}"
22
+ end
23
+ else
24
+ left_parts = []
25
+ offset = left.size % 3
26
+ if offset > 0
27
+ left_parts << left[0, offset]
28
+ end
29
+
30
+ (left.size / 3).times do |i|
31
+ left_parts << left[offset + (i * 3), 3]
32
+ end
33
+
34
+ left = left_parts.join(options[:delimiter])
21
35
  end
36
+
22
37
  [left, right].compact
23
38
  end
24
39
 
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.3
4
+ version: 7.2.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -90,6 +90,9 @@ dependencies:
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
92
  version: '5.1'
93
+ - - "<"
94
+ - !ruby/object:Gem::Version
95
+ version: '6'
93
96
  type: :runtime
94
97
  prerelease: false
95
98
  version_requirements: !ruby/object:Gem::Requirement
@@ -97,6 +100,9 @@ dependencies:
97
100
  - - ">="
98
101
  - !ruby/object:Gem::Version
99
102
  version: '5.1'
103
+ - - "<"
104
+ - !ruby/object:Gem::Version
105
+ version: '6'
100
106
  - !ruby/object:Gem::Dependency
101
107
  name: base64
102
108
  requirement: !ruby/object:Gem::Requirement
@@ -479,10 +485,10 @@ licenses:
479
485
  - MIT
480
486
  metadata:
481
487
  bug_tracker_uri: https://github.com/rails/rails/issues
482
- changelog_uri: https://github.com/rails/rails/blob/v7.2.3/activesupport/CHANGELOG.md
483
- documentation_uri: https://api.rubyonrails.org/v7.2.3/
488
+ changelog_uri: https://github.com/rails/rails/blob/v7.2.3.1/activesupport/CHANGELOG.md
489
+ documentation_uri: https://api.rubyonrails.org/v7.2.3.1/
484
490
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
485
- source_code_uri: https://github.com/rails/rails/tree/v7.2.3/activesupport
491
+ source_code_uri: https://github.com/rails/rails/tree/v7.2.3.1/activesupport
486
492
  rubygems_mfa_required: 'true'
487
493
  rdoc_options:
488
494
  - "--encoding"
@@ -500,7 +506,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
500
506
  - !ruby/object:Gem::Version
501
507
  version: '0'
502
508
  requirements: []
503
- rubygems_version: 3.6.9
509
+ rubygems_version: 4.0.6
504
510
  specification_version: 4
505
511
  summary: A toolkit of support libraries and Ruby core extensions extracted from the
506
512
  Rails framework.