activesupport 7.1.0.rc1 → 7.1.0

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: 680e4677ad9c5c80f0e8ca9b8fe7e4df0706ff259937be2547ba2e73fefc2c59
4
- data.tar.gz: 80dbd580c5d1ff3f342599ca0162c20845a7b0ea6a8fa0c88abea51643569ae3
3
+ metadata.gz: 82365193f8aa8e04a486a7ed6f82adeb64093abd70569d67c7756b065f754b82
4
+ data.tar.gz: ececf5de5e7b69fe11b7edc1007e7b850c2463005ffba7f2763b85636e192d98
5
5
  SHA512:
6
- metadata.gz: a3dca2799c3af8ac3a5298a5a67061cf4225bdc388972908f072c877d0c5108b714576db0b550b967c54526c785dd9f601fbc6a4b3720d90bd016ed200088227
7
- data.tar.gz: 53b99d38845de0067923c74518c21f2a370f8595e0eb6ad37a0beb5d3c8f2685e774a4aabb361e63aff7b699922fed4615db9e94c36db08f9e7acebff10ab26d
6
+ metadata.gz: e6daffabed388ec6412bff231a3d2478f430625d266078fe186c92594353b87026dc22a492e689ea7a716a570eb75a9eb53582a45b33627a06444be1b560da7e
7
+ data.tar.gz: 33dc1b13f205838ad773fc7c4bfda5bb6bec704cbdb7ffdaedfe938a91088c2dd98d1ade38514689dbb66d2f5f45e3871973b8981c21cd6deabec0cff41349da
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## Rails 7.1.0 (October 05, 2023) ##
2
+
3
+ * No changes.
4
+
5
+
6
+ ## Rails 7.1.0.rc2 (October 01, 2023) ##
7
+
8
+ * Fix `AS::MessagePack` with `ENV["RAILS_MAX_THREADS"]`.
9
+
10
+ *Jonathan Hefner*
11
+
12
+
1
13
  ## Rails 7.1.0.rc1 (September 27, 2023) ##
2
14
 
3
15
  * Add a new public API for broadcasting logs
@@ -202,5 +202,21 @@ module ActiveSupport
202
202
  def dispatch(&block)
203
203
  @broadcasts.each { |logger| block.call(logger) }
204
204
  end
205
+
206
+ def method_missing(name, *args, &block)
207
+ loggers = @broadcasts.select { |logger| logger.respond_to?(name) }
208
+
209
+ if loggers.none?
210
+ super(name, *args, &block)
211
+ elsif loggers.one?
212
+ loggers.first.send(name, *args, &block)
213
+ else
214
+ loggers.map { |logger| logger.send(name, *args, &block) }
215
+ end
216
+ end
217
+
218
+ def respond_to_missing?(method, include_all)
219
+ @broadcasts.any? { |logger| logger.respond_to?(method, include_all) }
220
+ end
205
221
  end
206
222
  end
@@ -10,7 +10,7 @@ module ActiveSupport
10
10
  MAJOR = 7
11
11
  MINOR = 1
12
12
  TINY = 0
13
- PRE = "rc1"
13
+ PRE = nil
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -14,9 +14,16 @@ module ActiveSupport
14
14
  # ActiveSupport::Logger.logger_outputs_to?(logger, STDOUT)
15
15
  # # => true
16
16
  def self.logger_outputs_to?(logger, *sources)
17
- logdev = logger.instance_variable_get(:@logdev)
18
- logger_source = logdev.dev if logdev.respond_to?(:dev)
19
- sources.any? { |source| source == logger_source }
17
+ loggers = if logger.is_a?(BroadcastLogger)
18
+ logger.broadcasts
19
+ else
20
+ [logger]
21
+ end
22
+
23
+ logdevs = loggers.map { |logger| logger.instance_variable_get(:@logdev) }
24
+ logger_sources = logdevs.filter_map { |logdev| logdev.dev if logdev.respond_to?(:dev) }
25
+
26
+ (sources & logger_sources).any?
20
27
  end
21
28
 
22
29
  def initialize(*args, **kwargs)
@@ -51,7 +51,7 @@ module ActiveSupport
51
51
  install_unregistered_type_handler
52
52
  message_pack_factory.freeze
53
53
  end
54
- message_pack_factory.pool(ENV.fetch("RAILS_MAX_THREADS") { 5 })
54
+ message_pack_factory.pool(ENV.fetch("RAILS_MAX_THREADS", 5).to_i)
55
55
  end
56
56
  end
57
57
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "bigdecimal"
4
+ require "bigdecimal/util"
3
5
  require "active_support/core_ext/big_decimal/conversions"
4
6
  require "active_support/core_ext/hash/keys"
5
7
  require "active_support/i18n"
@@ -128,7 +130,7 @@ module ActiveSupport
128
130
  def execute
129
131
  if !number
130
132
  nil
131
- elsif validate_float? && !valid_float?
133
+ elsif validate_float? && !valid_bigdecimal
132
134
  number
133
135
  else
134
136
  convert
@@ -173,8 +175,13 @@ module ActiveSupport
173
175
  key.split(".").reduce(DEFAULTS) { |defaults, k| defaults[k.to_sym] }
174
176
  end
175
177
 
176
- def valid_float?
177
- Float(number, exception: false)
178
+ def valid_bigdecimal
179
+ case number
180
+ when Float, Rational
181
+ number.to_d(0)
182
+ else
183
+ BigDecimal(number, exception: false)
184
+ end
178
185
  end
179
186
  end
180
187
  end
@@ -10,13 +10,13 @@ module ActiveSupport
10
10
  def convert
11
11
  format = options[:format]
12
12
 
13
- number_f = valid_float?
14
- if number_f
15
- if number_f.negative?
16
- number_f = number_f.abs
17
- format = options[:negative_format] if (number_f * 10**options[:precision]) >= 0.5
13
+ number_d = valid_bigdecimal
14
+ if number_d
15
+ if number_d.negative?
16
+ number_d = number_d.abs
17
+ format = options[:negative_format] if (number_d * 10**options[:precision]) >= 0.5
18
18
  end
19
- number_s = NumberToRoundedConverter.convert(number_f, options)
19
+ number_s = NumberToRoundedConverter.convert(number_d, options)
20
20
  else
21
21
  number_s = number.to_s.strip
22
22
  format = options[:negative_format] if number_s.sub!(/^-/, "")
@@ -88,7 +88,7 @@ module ActiveSupport
88
88
  initializer "active_support.initialize_time_zone" do |app|
89
89
  begin
90
90
  TZInfo::DataSource.get
91
- rescue TZInfo::DataSourceNotFound, TZInfo::ZoneinfoDirectoryNotFound => e
91
+ rescue TZInfo::DataSourceNotFound => e
92
92
  raise e.exception "tzinfo-data is not present. Please add gem 'tzinfo-data' to your Gemfile and run bundle install"
93
93
  end
94
94
  require "active_support/core_ext/time/zones"
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.1.0.rc1
4
+ version: 7.1.0
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: 2023-09-27 00:00:00.000000000 Z
11
+ date: 2023-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -446,10 +446,10 @@ licenses:
446
446
  - MIT
447
447
  metadata:
448
448
  bug_tracker_uri: https://github.com/rails/rails/issues
449
- changelog_uri: https://github.com/rails/rails/blob/v7.1.0.rc1/activesupport/CHANGELOG.md
450
- documentation_uri: https://api.rubyonrails.org/v7.1.0.rc1/
449
+ changelog_uri: https://github.com/rails/rails/blob/v7.1.0/activesupport/CHANGELOG.md
450
+ documentation_uri: https://api.rubyonrails.org/v7.1.0/
451
451
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
452
- source_code_uri: https://github.com/rails/rails/tree/v7.1.0.rc1/activesupport
452
+ source_code_uri: https://github.com/rails/rails/tree/v7.1.0/activesupport
453
453
  rubygems_mfa_required: 'true'
454
454
  post_install_message:
455
455
  rdoc_options:
@@ -464,9 +464,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
464
464
  version: 2.7.0
465
465
  required_rubygems_version: !ruby/object:Gem::Requirement
466
466
  requirements:
467
- - - ">"
467
+ - - ">="
468
468
  - !ruby/object:Gem::Version
469
- version: 1.3.1
469
+ version: '0'
470
470
  requirements: []
471
471
  rubygems_version: 3.4.18
472
472
  signing_key: