activesupport 7.0.6 → 7.0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 817ceee259b12be4eff5b6dce8d0a471f80a6e103e9fa3ddb7846889f617df14
4
- data.tar.gz: f6cac911c197763c9244a04fcf77e6065b778c607e1ec4e132fd21f2f07a114d
3
+ metadata.gz: 733fa9e6d5f4467a483a122dfe050d937a35e4e10fad7ff632b23a038d5e1bf6
4
+ data.tar.gz: 2ce35780ffe33472b8356cb9d37cf902b3818fd4c25b4af7714fb54511db797c
5
5
  SHA512:
6
- metadata.gz: 6b65a232e1c6e638092aaf4953fa6e876199568367922159498cdc46b2ebad6456e2ab78d81bbfcad8a9e4f6e4303ff797a1efacf98c3994b710bb25ffeff391
7
- data.tar.gz: 1d3d4c10c667ea3ce71033128ba6634347cdcaf30d8141fa1888d76978754187ec0d0e3a33c6a506da7669e99d030e1a0553f77a36e537d427fd223d478278e7
6
+ metadata.gz: 450ee340fabf8a3931a202fa426758a362cf4d7121a46737dbb7c97ac4c7151cb968e87edefbc6ec71b0da02d399194824b93d312c9a02f2295789bbf5e56490
7
+ data.tar.gz: e0b77ecd1a551bf8a8e12b057d03143137a447727873fc202edb64371320c61d9ce28af86d5adf36d6ad3fc2eeccc9e6cfeef45f278b0f5b9af67a92218273f4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,34 @@
1
+ ## Rails 7.0.7.1 (August 22, 2023) ##
2
+
3
+ * Use a temporary file for storing unencrypted files while editing
4
+
5
+ [CVE-2023-38037]
6
+
7
+
8
+ ## Rails 7.0.7 (August 09, 2023) ##
9
+
10
+ * Fix `Cache::NullStore` with local caching for repeated reads.
11
+
12
+ *fatkodima*
13
+
14
+ * Fix `to_s` with no arguments not respecting custom `:default` formats
15
+
16
+ *Hartley McGuire*
17
+
18
+ * Fix `ActiveSupport::Inflector.humanize(nil)` raising ``NoMethodError: undefined method `end_with?' for nil:NilClass``.
19
+
20
+ *James Robinson*
21
+
22
+ * Fix `Enumerable#sum` for `Enumerator#lazy`.
23
+
24
+ *fatkodima*, *Matthew Draper*, *Jonathan Hefner*
25
+
26
+ * Improve error message when EventedFileUpdateChecker is used without a
27
+ compatible version of the Listen gem
28
+
29
+ *Hartley McGuire*
30
+
31
+
1
32
  ## Rails 7.0.6 (June 29, 2023) ##
2
33
 
3
34
  * Fix `EncryptedConfiguration` returning incorrect values for some `Hash`
@@ -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).value
127
+ deserialize_entry(payload)&.value
128
128
  end
129
129
  missed_keys = keys - local_entries.keys
130
130
 
@@ -15,7 +15,18 @@ class Date
15
15
  strftime(formatter)
16
16
  end
17
17
  elsif format == NOT_SET
18
- to_default_s
18
+ if formatter = DATE_FORMATS[:default]
19
+ ActiveSupport::Deprecation.warn(
20
+ "Using a :default format for Date#to_s is deprecated. Please use Date#to_fs instead."
21
+ )
22
+ if formatter.respond_to?(:call)
23
+ formatter.call(self).to_s
24
+ else
25
+ strftime(formatter)
26
+ end
27
+ else
28
+ to_default_s
29
+ end
19
30
  else
20
31
  ActiveSupport::Deprecation.warn(
21
32
  "Date#to_s(#{format.inspect}) is deprecated. Please use Date#to_fs(#{format.inspect}) instead."
@@ -11,7 +11,18 @@ class DateTime
11
11
  )
12
12
  formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
13
13
  elsif format == NOT_SET
14
- to_default_s
14
+ if formatter = ::Time::DATE_FORMATS[:default]
15
+ ActiveSupport::Deprecation.warn(
16
+ "Using a :default format for DateTime#to_s is deprecated. Please use DateTime#to_fs instead."
17
+ )
18
+ if formatter.respond_to?(:call)
19
+ formatter.call(self).to_s
20
+ else
21
+ strftime(formatter)
22
+ end
23
+ else
24
+ to_default_s
25
+ end
15
26
  else
16
27
  ActiveSupport::Deprecation.warn(
17
28
  "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
- 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
- inject(:+) || 0
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,14 @@ module ActiveSupport
10
10
  )
11
11
  formatter.call(first, last)
12
12
  elsif format == NOT_SET
13
- super()
13
+ if formatter = RangeWithFormat::RANGE_FORMATS[:default]
14
+ ActiveSupport::Deprecation.warn(
15
+ "Using a :default format for Range#to_s is deprecated. Please use Range#to_fs instead."
16
+ )
17
+ formatter.call(first, last)
18
+ else
19
+ super()
20
+ end
14
21
  else
15
22
  ActiveSupport::Deprecation.warn(
16
23
  "Range#to_s(#{format.inspect}) is deprecated. Please use Range#to_fs(#{format.inspect}) instead."
@@ -11,7 +11,18 @@ class Time
11
11
  )
12
12
  formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
13
13
  elsif format == NOT_SET
14
- to_default_s
14
+ if formatter = ::Time::DATE_FORMATS[:default]
15
+ ActiveSupport::Deprecation.warn(
16
+ "Using a :default format for Time#to_s is deprecated. Please use Time#to_fs instead."
17
+ )
18
+ if formatter.respond_to?(:call)
19
+ formatter.call(self).to_s
20
+ else
21
+ strftime(formatter)
22
+ end
23
+ else
24
+ to_default_s
25
+ end
15
26
  else
16
27
  ActiveSupport::Deprecation.warn(
17
28
  "Time#to_s(#{format.inspect}) is deprecated. Please use Time#to_fs(#{format.inspect}) instead."
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "pathname"
4
- require "tmpdir"
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
- tmp_file = "#{Process.pid}.#{content_path.basename.to_s.chomp('.enc')}"
85
- tmp_path = Pathname.new File.join(Dir.tmpdir, tmp_file)
86
- tmp_path.binwrite contents
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
- yield tmp_path
88
+ yield tmp_path
89
89
 
90
- updated_contents = tmp_path.binread
90
+ updated_contents = tmp_path.binread
91
91
 
92
- write(updated_contents) if updated_contents != contents
93
- ensure
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
 
@@ -1,9 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ gem "listen", "~> 3.5"
4
+ require "listen"
5
+
3
6
  require "set"
4
7
  require "pathname"
5
8
  require "concurrent/atomic/atomic_boolean"
6
- require "listen"
7
9
  require "active_support/fork_tracker"
8
10
 
9
11
  module ActiveSupport
@@ -9,8 +9,8 @@ module ActiveSupport
9
9
  module VERSION
10
10
  MAJOR = 7
11
11
  MINOR = 0
12
- TINY = 6
13
- PRE = nil
12
+ TINY = 7
13
+ PRE = "1"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -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.end_with?("_id")
139
+ if !keep_id_suffix && lower_case_and_underscored_word&.end_with?("_id")
140
140
  result.delete_suffix!(" id")
141
141
  end
142
142
 
@@ -221,7 +221,14 @@ module ActiveSupport
221
221
  )
222
222
  formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
223
223
  elsif format == NOT_SET
224
- "#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby Time#to_s format
224
+ if formatter = ::Time::DATE_FORMATS[:default]
225
+ ActiveSupport::Deprecation.warn(
226
+ "Using a :default format for TimeWithZone#to_s is deprecated. Please use TimeWithZone#to_fs instead."
227
+ )
228
+ formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
229
+ else
230
+ "#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby Time#to_s format
231
+ end
225
232
  else
226
233
  ActiveSupport::Deprecation.warn(
227
234
  "TimeWithZone#to_s(#{format.inspect}) is deprecated. Please use TimeWithZone#to_fs(#{format.inspect}) instead."
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.6
4
+ version: 7.0.7.1
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-06-29 00:00:00.000000000 Z
11
+ date: 2023-08-22 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.6/activesupport/CHANGELOG.md
363
- documentation_uri: https://api.rubyonrails.org/v7.0.6/
362
+ changelog_uri: https://github.com/rails/rails/blob/v7.0.7.1/activesupport/CHANGELOG.md
363
+ documentation_uri: https://api.rubyonrails.org/v7.0.7.1/
364
364
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
365
- source_code_uri: https://github.com/rails/rails/tree/v7.0.6/activesupport
365
+ source_code_uri: https://github.com/rails/rails/tree/v7.0.7.1/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.13
385
- signing_key:
384
+ rubygems_version: 3.3.3
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.