Commit e57551a

mo khan <mo@mokhan.ca>
2013-07-20 04:49:44
update id when a new item is inserted
1 parent a3a8fbb
Changed files (3)
lib/humble/mapping_configuration.rb
@@ -10,7 +10,8 @@ module Humble
     end
 
     def save_using(connection, item)
-      connection[@table.name].insert(@table.insert(item))
+      id = connection[@table.name].insert(@table.insert(item))
+      item.instance_variable_set('@id', id)
     end
 
     def is_for?(item)
spec/integration/fixtures/movie_mapping.rb
@@ -2,7 +2,7 @@ class Movie
   attr_reader :id, :name
 
   def initialize(attributes)
-    @id = attributes[:name] || -1
+    @id = attributes[:id] || -1
     @name = attributes[:name]
   end
 end
spec/integration/example_spec.rb
@@ -42,9 +42,11 @@ describe "orm" do
   end
 
   context "when inserting a new record" do
+    let(:movie) { Movie.new(:name => 'oop') }
+
     before :each do
       session.begin_transaction do |session|
-        session.save(Movie.new(:name => 'oop'))
+        session.save(movie)
       end
     end
 
@@ -62,6 +64,11 @@ describe "orm" do
     it "should insert the name" do
       results.first[:name].should == 'oop'
     end
+
+    it "should update the new item with the new id" do
+      p movie.id
+      movie.id.should_not == -1
+    end
   end
 
 end