method
call
v5.2.3 -
Show latest stable
- Class:
ActiveRecord::PredicateBuilder::RangeHandler
call(attribute, value)public
No documentation available.
# File activerecord/lib/active_record/relation/predicate_builder/range_handler.rb, line 16
def call(attribute, value)
begin_bind = predicate_builder.build_bind_attribute(attribute.name, value.begin)
end_bind = predicate_builder.build_bind_attribute(attribute.name, value.end)
if begin_bind.value.infinity?
if end_bind.value.infinity?
attribute.not_in([])
elsif value.exclude_end?
attribute.lt(end_bind)
else
attribute.lteq(end_bind)
end
elsif end_bind.value.infinity?
attribute.gteq(begin_bind)
elsif value.exclude_end?
attribute.gteq(begin_bind).and(attribute.lt(end_bind))
else
attribute.between(RangeWithBinds.new(begin_bind, end_bind))
end
end