From 056963887bfb68109b1c19ef552942af99286d8e Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Wed, 12 May 2010 02:00:04 -0300 Subject: [PATCH 1/2] SQLite returns Float --- activerecord/test/cases/calculations_test.rb | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/activerecord/test/cases/calculations_test.rb b/activerecord/test/cases/calculations_test.rb index f428052..60f41a8 100644 --- a/activerecord/test/cases/calculations_test.rb +++ b/activerecord/test/cases/calculations_test.rb @@ -23,8 +23,7 @@ class CalculationsTest < ActiveRecord::TestCase def test_should_average_field value = Account.average(:credit_limit) - assert_kind_of BigDecimal, value - assert_equal BigDecimal.new('53.0'), value + assert_equal 53.0, value end def test_should_return_nil_as_average -- 1.7.1 From 58051400ebb1b5e4a4ab61f8d859537475328f99 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Wed, 12 May 2010 02:01:41 -0300 Subject: [PATCH 2/2] Refactor value is never a Fixnum --- activerecord/lib/active_record/calculations.rb | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/activerecord/lib/active_record/calculations.rb b/activerecord/lib/active_record/calculations.rb index a44f090..0df2b6b 100644 --- a/activerecord/lib/active_record/calculations.rb +++ b/activerecord/lib/active_record/calculations.rb @@ -298,7 +298,7 @@ module ActiveRecord case operation.to_s.downcase when 'count' then value.to_i when 'sum' then type_cast_using_column(value || '0', column) - when 'avg' then value && (value.is_a?(Fixnum) ? value.to_f : value).to_d + when 'avg' then value.try(:to_d) else type_cast_using_column(value, column) end else -- 1.7.1