aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorutilum <oz@utilum.com>2018-12-04 13:46:00 +0100
committerutilum <oz@utilum.com>2018-12-04 13:50:45 +0100
commitab631b363e0bb4870fe535f3ef0d1751bfd14ae1 (patch)
tree1147ad17bfea747ddf46e7cb14c6a188cd712e33
parent609c58bfa6df58b88e3eadebb1f1d49354541d24 (diff)
downloadrails-ab631b363e0bb4870fe535f3ef0d1751bfd14ae1.tar.gz
rails-ab631b363e0bb4870fe535f3ef0d1751bfd14ae1.tar.bz2
rails-ab631b363e0bb4870fe535f3ef0d1751bfd14ae1.zip
Another Ruby 2.6 BigDecimal compatibility issue
This patch modifies XmlMini::Parsing["decimal"] to handle a string that contains an invalid number. Since [ruby/ruby@a0e438c#diff-6b866d482baf2bdfd8433893fb1f6d36R144](https://github.com/ruby/ruby/commit/a0e438cd3c28d2eaf4efa18243d5b6edafa14d88#diff-6b866d482baf2bdfd8433893fb1f6d36R144) this case raises an `ArgumentError`. `String.to_f` returns 0.0 if there is not a valid number at the start of the argument, so current behavior is conserved. See https://travis-ci.org/rails/rails/jobs/463180341#L6264 Related: #34600, #34601
-rw-r--r--activesupport/lib/active_support/xml_mini.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/xml_mini.rb b/activesupport/lib/active_support/xml_mini.rb
index e42eee07a3..be298bf0a1 100644
--- a/activesupport/lib/active_support/xml_mini.rb
+++ b/activesupport/lib/active_support/xml_mini.rb
@@ -71,7 +71,7 @@ module ActiveSupport
begin
BigDecimal(number)
rescue ArgumentError
- BigDecimal("0")
+ BigDecimal(number.to_f.to_s)
end
else
BigDecimal(number)