aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-05-26 18:32:48 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-05-26 18:32:48 -0300
commit178448ae9d10a27773f548e4b71390391882480f (patch)
treefc33ceca1b3a7391af69ed0b1e54b23804f489f4 /activerecord/lib
parent5af6120ad17f07c2d217b55faab1bebc83be98a0 (diff)
parent8163a50fdc333f8cc5ea15c885f99b98b5b0fd70 (diff)
downloadrails-178448ae9d10a27773f548e4b71390391882480f.tar.gz
rails-178448ae9d10a27773f548e4b71390391882480f.tar.bz2
rails-178448ae9d10a27773f548e4b71390391882480f.zip
Merge pull request #15351 from sgrif/sg-allowed-types
Extract types which don't require additional typecasting to a method
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/quoting.rb13
1 files 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