Merge pull request #34858 from albertoalmagro/make-rails-compatible-accross-ruby-versions
Make average compatible across ruby versions
This commit is contained in:
commit
a5a22c4ea1
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user