<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -26,7 +26,7 @@ module Machinist
     end
 
     def make!(blueprint_name = :default, attributes = {})
-      
+      make(blueprint_name, attributes, false)
     end
   end
   </diff>
      <filename>lib/machinist.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,11 +6,20 @@ class Base
 
   attr_accessor :invalid
 
+  def save!
+    raise &quot;Invalid record&quot; if @invalid
+    save
+  end
+
   def save;   @saved    = !@invalid;  end
   def reload; @reloaded = true; self; end
   
   def saved?;    @saved;    end
   def reloaded?; @reloaded; end
+
+  def new_record?
+    !@saved
+  end
 end
 
 class Post &lt; Base
@@ -74,8 +83,8 @@ describe Machinist do
     post.title.should be_nil
   end
 
-  it &quot;should return invalid object from #make&quot; do
-    post = Post.make(:invalid =&gt; true)
+  it &quot;should return invalid object from #make!&quot; do
+    post = Post.make!(:invalid =&gt; true)
     post.should_not be_saved
     post.should_not be_reloaded
   end</diff>
      <filename>spec/machinist_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e80448cc35b9497952c4dc8f6d2bc428ed2a623f</id>
    </parent>
  </parents>
  <author>
    <name>rick</name>
    <email>technoweenie@technoweenie.local</email>
  </author>
  <url>http://github.com/technoweenie/machinist/commit/d927e6e0a44c1868a3360ad0746c45752c7eaeee</url>
  <id>d927e6e0a44c1868a3360ad0746c45752c7eaeee</id>
  <committed-date>2008-11-02T00:24:09-07:00</committed-date>
  <authored-date>2008-11-02T00:24:09-07:00</authored-date>
  <message>forgot to commit the actual implementation and specs for #make!</message>
  <tree>25199ffb8fd56b31899c63827d027708d76f2a82</tree>
  <committer>
    <name>rick</name>
    <email>technoweenie@technoweenie.local</email>
  </committer>
</commit>
