aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/arel/predications.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/arel/predications.rb')
-rw-r--r--activerecord/lib/arel/predications.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/activerecord/lib/arel/predications.rb b/activerecord/lib/arel/predications.rb
index 28679ae892..2a62c53aa3 100644
--- a/activerecord/lib/arel/predications.rb
+++ b/activerecord/lib/arel/predications.rb
@@ -36,14 +36,14 @@ module Arel # :nodoc: all
def between(other)
if infinity?(other.begin)
- if infinity?(other.end)
+ if other.end.nil? || infinity?(other.end)
not_in([])
elsif other.exclude_end?
lt(other.end)
else
lteq(other.end)
end
- elsif infinity?(other.end)
+ elsif other.end.nil? || infinity?(other.end)
gteq(other.begin)
elsif other.exclude_end?
gteq(other.begin).and(lt(other.end))
@@ -82,14 +82,14 @@ Passing a range to `#in` is deprecated. Call `#between`, instead.
def not_between(other)
if infinity?(other.begin)
- if infinity?(other.end)
+ if other.end.nil? || infinity?(other.end)
self.in([])
elsif other.exclude_end?
gteq(other.end)
else
gt(other.end)
end
- elsif infinity?(other.end)
+ elsif other.end.nil? || infinity?(other.end)
lt(other.begin)
else
left = lt(other.begin)