aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/predicate_builder
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-12-29 10:57:15 -0700
committerSean Griffin <sean@thoughtbot.com>2014-12-29 10:57:15 -0700
commit7eed50c7208a1b605e6ad04e877a3cbeb7cc3434 (patch)
treebcbe210ff724e4e5255545a9245a1d759cf4e1a8 /activerecord/lib/active_record/relation/predicate_builder
parent266ff700011dfcc4b76a7332bbfa64d9419c10bc (diff)
downloadrails-7eed50c7208a1b605e6ad04e877a3cbeb7cc3434.tar.gz
rails-7eed50c7208a1b605e6ad04e877a3cbeb7cc3434.tar.bz2
rails-7eed50c7208a1b605e6ad04e877a3cbeb7cc3434.zip
Rely on the injectable type caster for `arel_table`
This API will require much less consuming code to change to accomodate the removal of automatic type casting from Arel. As long as the predicates are constructed using the `arel_table` off of an AR subclass, there will be no changes that need to happen.
Diffstat (limited to 'activerecord/lib/active_record/relation/predicate_builder')
-rw-r--r--activerecord/lib/active_record/relation/predicate_builder/array_handler.rb7
-rw-r--r--activerecord/lib/active_record/relation/predicate_builder/basic_object_handler.rb1
-rw-r--r--activerecord/lib/active_record/relation/predicate_builder/range_handler.rb16
3 files changed, 1 insertions, 23 deletions
diff --git a/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb b/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb
index 7c90563d96..4b5f5773a0 100644
--- a/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb
+++ b/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb
@@ -19,12 +19,7 @@ module ActiveRecord
case values.length
when 0 then NullPredicate
when 1 then predicate_builder.build(attribute, values.first)
- else
- attribute_name = attribute.name
- casted_values = values.map do |v|
- predicate_builder.type_cast_for_database(attribute_name, v)
- end
- attribute.in(casted_values)
+ else attribute.in(values)
end
unless nils.empty?
diff --git a/activerecord/lib/active_record/relation/predicate_builder/basic_object_handler.rb b/activerecord/lib/active_record/relation/predicate_builder/basic_object_handler.rb
index 57a8b63001..6cec75dc0a 100644
--- a/activerecord/lib/active_record/relation/predicate_builder/basic_object_handler.rb
+++ b/activerecord/lib/active_record/relation/predicate_builder/basic_object_handler.rb
@@ -6,7 +6,6 @@ module ActiveRecord
end
def call(attribute, value)
- value = predicate_builder.type_cast_for_database(attribute.name, value)
attribute.eq(value)
end
diff --git a/activerecord/lib/active_record/relation/predicate_builder/range_handler.rb b/activerecord/lib/active_record/relation/predicate_builder/range_handler.rb
index a6638738fa..1b3849e3ad 100644
--- a/activerecord/lib/active_record/relation/predicate_builder/range_handler.rb
+++ b/activerecord/lib/active_record/relation/predicate_builder/range_handler.rb
@@ -6,11 +6,6 @@ module ActiveRecord
end
def call(attribute, value)
- value = QuotedRange.new(
- predicate_builder.type_cast_for_database(attribute.name, value.begin),
- predicate_builder.type_cast_for_database(attribute.name, value.end),
- value.exclude_end?,
- )
attribute.between(value)
end
@@ -18,16 +13,5 @@ module ActiveRecord
attr_reader :predicate_builder
end
-
- class QuotedRange # :nodoc:
- attr_reader :begin, :end, :exclude_end
- alias_method :exclude_end?, :exclude_end
-
- def initialize(begin_val, end_val, exclude)
- @begin = begin_val
- @end = end_val
- @exclude_end = exclude
- end
- end
end
end