From 7e7a3548bb7e024b0bac0a03e3ac9f774c3486d4 Mon Sep 17 00:00:00 2001
From: Ernie Miller <ernie@metautonomo.us>
Date: Tue, 30 Mar 2010 08:45:09 -0400
Subject: Cleaner support for Ranges with excluded end.

---
 lib/arel/engines/sql/predicates.rb | 10 ++++++++++
 1 file changed, 10 insertions(+)

(limited to 'lib/arel/engines')

diff --git a/lib/arel/engines/sql/predicates.rb b/lib/arel/engines/sql/predicates.rb
index 53bac7a2ca..7fac09e750 100644
--- a/lib/arel/engines/sql/predicates.rb
+++ b/lib/arel/engines/sql/predicates.rb
@@ -75,6 +75,16 @@ module Arel
     end
 
     class In < Binary
+      def to_sql
+        if operand2.is_a?(Range) && operand2.exclude_end?
+          GreaterThanOrEqualTo.new(operand1, operand2.begin).and(
+            LessThan.new(operand1, operand2.end)
+          ).to_sql
+        else
+          super
+        end
+      end
+      
       def predicate_sql; operand2.inclusion_predicate_sql end
     end
     
-- 
cgit v1.2.3