Commit 2a9a3ff

mo khan <mo@mokhan.ca>
2013-07-20 23:42:18
move persistence down to database table
1 parent af81950
lib/humble/database_table.rb
@@ -18,15 +18,12 @@ module Humble
       @columns << Column.new(:name => name)
     end
 
-    def insert(item)
-      prepare_statement do |column|
-        column.prepare_insert(item)
-      end
-    end
-
-    def update(item)
-      prepare_statement do |column|
-        column.prepare_update(item)
+    def persist(connection, item)
+      if has_default_value?(item)
+        id = connection[@name].insert(insert(item))
+        item.instance_variable_set('@id', id)
+      else
+        connection[@name].update(update(item))
       end
     end
 
@@ -45,5 +42,18 @@ module Humble
         result.merge(yield(column))
       end
     end
+
+    def insert(item)
+      prepare_statement do |column|
+        column.prepare_insert(item)
+      end
+    end
+
+    def update(item)
+      prepare_statement do |column|
+        column.prepare_update(item)
+      end
+    end
+
   end
 end
lib/humble/mapping_configuration.rb
@@ -10,12 +10,7 @@ module Humble
     end
 
     def save_using(connection, item)
-      if @table.has_default_value?(item)
-        id = connection[@table.name].insert(@table.insert(item))
-        item.instance_variable_set('@id', id)
-      else
-        connection[@table.name].update(@table.update(item))
-      end
+      @table.persist(connection, item)
     end
 
     def is_for?(item)
Gemfile.lock
@@ -1,7 +1,7 @@
 PATH
   remote: .
   specs:
-    humble (0.0.1374363495)
+    humble (0.0.1374363716)
       sequel
 
 GEM