<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -45,8 +45,11 @@ A more complicated example:
 
 A value of :belongs_to_model on an attribute adds logic to call +create_+ or +build_+, appropriately.
 For example:
-+build_user+ will call :role =&gt; build_role, while +create_user+ will call :role =&gt; create_role.
-+valid_user_attributes+ will call +build_role+.
+  valid_user_attributes         # assigns :role =&gt; build_role
+  build_user                    # assigns :role =&gt; build_role
+
+  create_user                   # assigns :role =&gt; create_role
+  valid_user_attributes(true)   # assigns :role =&gt; create_role
 In this way, models are not saved to the database unnecessarily.
 
 Note that if you pass a foreign key attribute as a build or create override, the corresponding default object will not be constructed.</diff>
      <filename>README.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -17,6 +17,6 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
   rdoc.rdoc_dir = 'rdoc'
   rdoc.title    = 'factories-and-workers'
   rdoc.options &lt;&lt; '--line-numbers' &lt;&lt; '--inline-source'
-  rdoc.rdoc_files.include('README')
+  rdoc.rdoc_files.include('README.rdoc')
   rdoc.rdoc_files.include('lib/**/*.rb')
 end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 if ENV['RAILS_ENV'] == 'test'
 
-  require 'lib/factories-and-workers'
+  require 'factories-and-workers'
 
   require 'fileutils'
   %w(spec/factories.rb spec/factory_workers.rb test/factories.rb test/factory_workers.rb).each do |file|</diff>
      <filename>init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -58,10 +58,28 @@ class FactoryBuilderTest &lt; Test::Unit::TestCase
   end
   
   def test_valid_monkey_attributes
-    assert_equal( {:name =&gt; &quot;George&quot;}, remove_variability( valid_monkey_attributes) )
+    assert_equal( {:name =&gt; &quot;George&quot;}, remove_variability( valid_monkey_attributes ) )
   end
 
-  def test_default_monkey_attributes_alias
+  def test_valid_pirate_attributes_without_create
+    assert_difference &quot;Monkey.count&quot;, 0 do
+      valid_pirate_attributes( false )
+    end
+  end
+  
+  def test_valid_pirate_attributes_with_create
+    assert_difference &quot;Monkey.count&quot;, 1 do
+      valid_pirate_attributes( true )
+    end
+  end
+
+  def test_valid_attribute__does_not_evaluate_other_attributes
+    assert_difference &quot;Monkey.count&quot;, 0 do
+      assert_equal &quot;Ahhrrrr, Matey!&quot;, valid_pirate_attribute(:catchphrase)
+    end
+  end
+  
+  def test_default_attributes_alias
     hash1 = remove_variability( valid_monkey_attributes )
     hash2 = remove_variability( default_monkey_attributes )
     assert_equal hash1, hash2
@@ -75,18 +93,6 @@ class FactoryBuilderTest &lt; Test::Unit::TestCase
     end
   end
 
-  def test_valid_pirate_attributes_calling_lambda
-    assert_difference &quot;Monkey.count&quot;, 1 do
-      assert_equal &quot;Ahhrrrr, Matey!&quot;, valid_pirate_attributes[:catchphrase]
-    end
-  end
-
-  def test_valid_pirate_attributes_with_single_arg_does_not_call_lambda
-    assert_difference &quot;Monkey.count&quot;, 0 do
-      assert_equal &quot;Ahhrrrr, Matey!&quot;, valid_pirate_attributes(:catchphrase)
-    end
-  end
-
   def test_create_pirate_evaluates_lambda
     assert_difference &quot;Pirate.count&quot;, 1 do
       assert_difference &quot;Monkey.count&quot;, 1 do
@@ -100,14 +106,14 @@ class FactoryBuilderTest &lt; Test::Unit::TestCase
 
   def test_overridden_attributes
     @phil = create_monkey( :name =&gt; &quot;Phil&quot; )
-    assert_not_equal valid_monkey_attributes[:name], @phil.name
+    assert_not_equal valid_monkey_attribute(:name), @phil.name
 
     assert_difference &quot;Pirate.count&quot;, 0 do
       assert_difference &quot;Monkey.count&quot;, 0 do
         @pirate = build_pirate( :monkey =&gt; @phil, :catchphrase =&gt; &quot;chunky bacon!&quot; )
       end
     end
-    assert_not_equal valid_pirate_attributes(:catchphrase), @pirate.catchphrase    
+    assert_not_equal valid_pirate_attribute(:catchphrase), @pirate.catchphrase    
     assert_equal &quot;Phil&quot;, @pirate.monkey.name
     assert_equal &quot;George&quot;, build_pirate.monkey.name
   end
@@ -115,7 +121,7 @@ class FactoryBuilderTest &lt; Test::Unit::TestCase
   def test_overridden_attribute_id_will_not_evaluate_lambda_for_model_creation
     assert_difference &quot;Monkey.count&quot;, 0 do
       @pirate = build_pirate( :monkey_id =&gt; 1 )
-    end    
+    end
   end
   
   protected</diff>
      <filename>test/factory_builder_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>34795872859571892e331ab1d6368fc5f2f55325</id>
    </parent>
  </parents>
  <author>
    <name>David Lowenfels</name>
    <email>david@internautdesign.com</email>
  </author>
  <url>http://github.com/dfl/factories-and-workers/commit/b8adebe65799a13c6a1ba54cae8f9948b599f97c</url>
  <id>b8adebe65799a13c6a1ba54cae8f9948b599f97c</id>
  <committed-date>2008-06-13T00:42:24-07:00</committed-date>
  <authored-date>2008-06-13T00:42:24-07:00</authored-date>
  <message>adding singular valid attribute method. also pass true to make the valid_attribute method call #create for associations rather than #build</message>
  <tree>2d94ac86d6fed5e580ebcc52808dd17a556a2d59</tree>
  <committer>
    <name>David Lowenfels</name>
    <email>david@internautdesign.com</email>
  </committer>
</commit>
