Commit 8b74491

mo khan <mo@mokhan.ca>
2013-07-21 00:09:23
delegate to primary key column to apply new id after insertion
1 parent 8ee513a
lib/humble/column.rb
@@ -28,5 +28,9 @@ module Humble
     def default
       @attributes[:default]
     end
+
+    def apply(id, entity)
+      entity.instance_variable_set("@#{column_name}", id ) if primary_key?
+    end
   end
 end
lib/humble/database_table.rb
@@ -43,7 +43,8 @@ module Humble
     end
 
     def insert(item, connection)
-      item.instance_variable_set('@id', connection.insert(prepare_statement { |column| column.prepare_insert(item) }))
+      id = connection.insert(prepare_statement { |column| column.prepare_insert(item) })
+      primary_key_column.apply(id, item)
     end
 
     def update(item, connection)
Gemfile.lock
@@ -1,7 +1,7 @@
 PATH
   remote: .
   specs:
-    humble (0.0.1374365162)
+    humble (0.0.1374365339)
       sequel
 
 GEM