Merge pull request #34858 from albertoalmagro/make-rails-compatible-accross-ruby-versions

Make average compatible across ruby versions
This commit is contained in:
Ryuta Kamizono 2019-01-04 10:32:37 +09:00 committed by GitHub
commit a5a22c4ea1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 7 deletions

@ -401,7 +401,7 @@ def type_cast_calculated_value(value, type, operation = nil)
case operation
when "count" then value.to_i
when "sum" then type.deserialize(value || 0)
when "average" then value.respond_to?(:to_d) ? value.to_d : value
when "average" then value&.respond_to?(:to_d) ? value.to_d : value
else type.deserialize(value)
end
end

@ -57,13 +57,9 @@ def test_should_return_integer_average_if_db_returns_such
assert_equal 3, value
end
def test_should_return_nil_to_d_as_average
if nil.respond_to?(:to_d)
assert_equal BigDecimal(0), NumericData.average(:bank_balance)
else
def test_should_return_nil_as_average
assert_nil NumericData.average(:bank_balance)
end
end
def test_should_get_maximum_of_field
assert_equal 60, Account.maximum(:credit_limit)