blob: a6638738fa568cdf0429508485e6216ff3656ec7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
module ActiveRecord
class PredicateBuilder
class RangeHandler # :nodoc:
def initialize(predicate_builder)
@predicate_builder = predicate_builder
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
protected
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
|