From ed8e0f9c02c291a51f93a2123e099d07756d75bb Mon Sep 17 00:00:00 2001
From: Bryan Helmkamp <bryan@brynary.com>
Date: Sun, 17 May 2009 16:42:17 -0400
Subject: Include modules to extend core classes to improve inspectability

---
 lib/arel/engines/sql/extensions/array.rb     | 19 +++++++++++++------
 lib/arel/engines/sql/extensions/nil_class.rb | 12 +++++++++---
 lib/arel/engines/sql/extensions/object.rb    | 18 ++++++++++++------
 lib/arel/engines/sql/extensions/range.rb     | 18 ++++++++++++------
 4 files changed, 46 insertions(+), 21 deletions(-)

(limited to 'lib/arel/engines/sql')

diff --git a/lib/arel/engines/sql/extensions/array.rb b/lib/arel/engines/sql/extensions/array.rb
index d97dd1aa25..7f15179721 100644
--- a/lib/arel/engines/sql/extensions/array.rb
+++ b/lib/arel/engines/sql/extensions/array.rb
@@ -1,9 +1,16 @@
-class Array
-  def to_sql(formatter = nil)
-    "(" + collect { |e| e.to_sql(formatter) }.join(', ') + ")"
-  end
+module Arel
+  module Sql
+    module ArrayExtensions
+      def to_sql(formatter = nil)
+        "(" + collect { |e| e.to_sql(formatter) }.join(', ') + ")"
+      end
 
-  def inclusion_predicate_sql
-    "IN"
+      def inclusion_predicate_sql
+        "IN"
+      end
+      
+      Array.send(:include, self)
+    end
   end
 end
+
diff --git a/lib/arel/engines/sql/extensions/nil_class.rb b/lib/arel/engines/sql/extensions/nil_class.rb
index 6f38ecdf3a..8c335f904a 100644
--- a/lib/arel/engines/sql/extensions/nil_class.rb
+++ b/lib/arel/engines/sql/extensions/nil_class.rb
@@ -1,5 +1,11 @@
-class NilClass
-  def equality_predicate_sql
-    'IS'
+module Arel
+  module Sql
+    module NilClassExtensions
+      def equality_predicate_sql
+        'IS'
+      end
+      
+      NilClass.send(:include, self)
+    end
   end
 end
diff --git a/lib/arel/engines/sql/extensions/object.rb b/lib/arel/engines/sql/extensions/object.rb
index 65270ee3de..8fe63dba2f 100644
--- a/lib/arel/engines/sql/extensions/object.rb
+++ b/lib/arel/engines/sql/extensions/object.rb
@@ -1,9 +1,15 @@
-class Object
-  def to_sql(formatter)
-    formatter.scalar self
-  end
+module Arel
+  module Sql
+    module ObjectExtensions
+      def to_sql(formatter)
+        formatter.scalar self
+      end
 
-  def equality_predicate_sql
-    '='
+      def equality_predicate_sql
+        '='
+      end
+      
+      Object.send(:include, self)
+    end
   end
 end
diff --git a/lib/arel/engines/sql/extensions/range.rb b/lib/arel/engines/sql/extensions/range.rb
index 946dbc2633..25bf1d01da 100644
--- a/lib/arel/engines/sql/extensions/range.rb
+++ b/lib/arel/engines/sql/extensions/range.rb
@@ -1,9 +1,15 @@
-class Range
-  def to_sql(formatter = nil)
-    formatter.range self.begin, self.end
-  end
+module Arel
+  module Sql
+    module RangeExtensions
+      def to_sql(formatter = nil)
+        formatter.range self.begin, self.end
+      end
 
-  def inclusion_predicate_sql
-    "BETWEEN"
+      def inclusion_predicate_sql
+        "BETWEEN"
+      end
+      
+      Range.send(:include, self)
+    end
   end
 end
-- 
cgit v1.2.3