From 8163a50fdc333f8cc5ea15c885f99b98b5b0fd70 Mon Sep 17 00:00:00 2001 From: Sean Griffin Date: Mon, 26 May 2014 14:28:18 -0700 Subject: Extract types which don't require additional typecasting to a method Database specific adapters shouldn't need to override `type_cast` to define types which are already in an acceptable state. --- .../active_record/connection_adapters/abstract/quoting.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb index 768d2b6d36..f836e60988 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb @@ -53,16 +53,15 @@ module ActiveRecord end case value - when String, ActiveSupport::Multibyte::Chars + when Symbol, ActiveSupport::Multibyte::Chars value.to_s when true then unquoted_true when false then unquoted_false - when nil then nil # BigDecimals need to be put in a non-normalized form and quoted. when BigDecimal then value.to_s('F') - when Numeric then value when Date, Time then quoted_date(value) - when Symbol then value.to_s + when *types_which_need_no_typecasting + value else to_type = column ? " to #{column.type}" : "" raise TypeError, "can't cast #{value.class}#{to_type}" @@ -124,6 +123,12 @@ module ActiveRecord value.to_s(:db) end + + private + + def types_which_need_no_typecasting + [nil, Numeric, String] + end end end end -- cgit v1.2.3