From ef231deb9ef032e0910dcaec240b70996fc5e44e Mon Sep 17 00:00:00 2001
From: Aaron Patterson <aaron.patterson@gmail.com>
Date: Sun, 25 Jul 2010 18:37:00 -0700
Subject: speed up method lookup by not mixing in modules

---
 lib/arel/engines/memory/engine.rb | 12 +++---------
 lib/arel/engines/sql/engine.rb    | 40 ++++++++++++++++++---------------------
 2 files changed, 21 insertions(+), 31 deletions(-)

(limited to 'lib/arel/engines')

diff --git a/lib/arel/engines/memory/engine.rb b/lib/arel/engines/memory/engine.rb
index c7ac9422d4..0142c49aa3 100644
--- a/lib/arel/engines/memory/engine.rb
+++ b/lib/arel/engines/memory/engine.rb
@@ -1,16 +1,10 @@
 module Arel
   module Memory
     class Engine
-      module CRUD
-        def read(relation)
-          relation.eval
-        end
-
-        def create(relation)
-          relation.eval
-        end
+      def read(relation)
+        relation.eval
       end
-      include CRUD
+      alias :create :read
     end
   end
 end
diff --git a/lib/arel/engines/sql/engine.rb b/lib/arel/engines/sql/engine.rb
index a314a972c0..8504fec3c5 100644
--- a/lib/arel/engines/sql/engine.rb
+++ b/lib/arel/engines/sql/engine.rb
@@ -1,7 +1,6 @@
 module Arel
   module Sql
     class Engine
-
       def initialize(ar = nil)
         @ar = ar
       end
@@ -28,32 +27,29 @@ module Arel
         end
       end
 
-      module CRUD
-        def create(relation)
-          primary_key_value = if relation.primary_key.blank?
-            nil
-          elsif relation.record.is_a?(Hash)
-            attribute = relation.record.detect { |attr, _| attr.name.to_s == relation.primary_key.to_s }
-            attribute && attribute.last.value
-          end
-
-          connection.insert(relation.to_sql(false), nil, relation.primary_key, primary_key_value)
+      def create(relation)
+        primary_key_value = if relation.primary_key.blank?
+          nil
+        elsif relation.record.is_a?(Hash)
+          attribute = relation.record.detect { |attr, _| attr.name.to_s == relation.primary_key.to_s }
+          attribute && attribute.last.value
         end
 
-        def read(relation)
-          rows = connection.select_rows(relation.to_sql)
-          Array.new(rows, relation.attributes)
-        end
+        connection.insert(relation.to_sql(false), nil, relation.primary_key, primary_key_value)
+      end
 
-        def update(relation)
-          connection.update(relation.to_sql)
-        end
+      def read(relation)
+        rows = connection.select_rows(relation.to_sql)
+        Array.new(rows, relation.attributes)
+      end
 
-        def delete(relation)
-          connection.delete(relation.to_sql)
-        end
+      def update(relation)
+        connection.update(relation.to_sql)
+      end
+
+      def delete(relation)
+        connection.delete(relation.to_sql)
       end
-      include CRUD
     end
   end
 end
-- 
cgit v1.2.3