<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>CHANGELOG.rdoc</filename>
    </added>
    <added>
      <filename>README.rdoc</filename>
    </added>
    <added>
      <filename>TODO.rdoc</filename>
    </added>
    <added>
      <filename>contributions.rdoc</filename>
    </added>
    <added>
      <filename>philosophy_and_bugs.rdoc</filename>
    </added>
    <added>
      <filename>spec/fixture_replacement/integration/cyclic_dependency_spec.rb</filename>
    </added>
    <added>
      <filename>spec/fixture_replacement/integration/default_warnings_spec.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,4 @@
-Copyright (c) 2008 Scott Taylor (smtlaissezfaire) &lt;scott@railsnewbie.com&gt;
+Copyright (c) 2008-2009 Scott Taylor (smtlaissezfaire) &lt;scott@railsnewbie.com&gt;
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation</diff>
      <filename>MIT_LICENSE</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'rake'
 require 'rake/testtask'
-require 'rake/rdoctask'
+require 'hanna/rdoctask'
 require 'spec/rake/spectask'
 require 'spec/rake/verify_rcov'
 require 'rake/contrib/rubyforgepublisher'
@@ -26,7 +26,17 @@ Rake::RDocTask.new(:rdoc_without_analytics) do |rdoc|
   rdoc.title    = 'FixtureReplacement'
   rdoc.options &lt;&lt; '--line-numbers' &lt;&lt; '--inline-source'
 
-  [&quot;README&quot;, &quot;CHANGELOG&quot;, &quot;GPL_LICENSE&quot;, &quot;MIT_LICENSE&quot;, &quot;lib/**/*.rb&quot;].each do |file|
+  rdoc.options &lt;&lt; '--webcvs=http://github.com/smtlaissezfaire/fixturereplacement/tree/master/'
+
+  [
+    &quot;README.rdoc&quot;,
+    &quot;CHANGELOG.rdoc&quot;,
+    &quot;GPL_LICENSE&quot;,
+    &quot;MIT_LICENSE&quot;,
+    &quot;contributions.rdoc&quot;,
+    &quot;philosophy_and_bugs.rdoc&quot;,
+    &quot;lib/**/*.rb&quot;
+  ].each do |file|
     rdoc.rdoc_files.include(file)
   end
 end
@@ -41,7 +51,6 @@ task :rdoc =&gt; [:rdoc_without_analytics] do
   File.open(rdoc_index, &quot;r+&quot;) do |file|
     file.write(contents)
   end
-
 end
 
 task :rerdoc =&gt; [:clobber_rdoc, :rdoc]
@@ -84,7 +93,7 @@ task :build_docs =&gt; [:rerdoc, :specdoc, :rcov, :flog_to_disk]
 desc &quot;Run all examples with RCov&quot;
 Spec::Rake::SpecTask.new(:rcov) do |t|
   t.rcov = true
-  t.rcov_opts = ['--exclude', 'spec']
+  t.rcov_opts = ['--exclude', 'spec', '--exclude', 'gems']
   t.rcov_dir = &quot;doc/rcov&quot;
 end
 
@@ -114,6 +123,4 @@ task :output_sloc =&gt; :create_doc_directory do
   File.open(File.dirname(__FILE__) + &quot;/doc/lines_of_code.txt&quot;, &quot;w&quot;) do |f|
     f &lt;&lt; sloc
   end
-end
-
-
+end
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-require 'ostruct'
-
 dir = File.dirname(__FILE__) + &quot;/fixture_replacement&quot;
 load &quot;#{dir}/version.rb&quot;
 load &quot;#{dir}/class_methods.rb&quot;</diff>
      <filename>lib/fixture_replacement.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,4 @@
 module FixtureReplacement
-  # I am a series of ActiveRecord model attributes.
-  #
-  # My attributes come from the following places: 
-  #
-  #   * from the class which is specified with :from =&gt; :fixture_name
-  #     when I was constructed
-  #   * from the anonymous function which is passed from into my constructor
-  #
   class AttributeBuilder
     class &lt;&lt; self
       def instances
@@ -14,27 +6,21 @@ module FixtureReplacement
       end
       
       def add_instance(instance)
-        @instances ||= []
-        @instances &lt;&lt; instance
+        instances &lt;&lt; instance
       end
       
       def clear_out_instances!
         @instances = nil
       end
       
-      # Finds the fixture by the given name
-      # If there are duplicate fixtures with the same name,
-      # it will find the first one which was specified.  It will
-      # return nil if no fixture with the name given was found
       def find_by_fixture_name(arg)
-        instances.each { |instance| return instance if instance.fixture_name == arg }
-        nil
+        instances.detect { |instance| instance.fixture_name == arg }
       end
     end
     
     def initialize(fixture_name, options={}, &amp;block)
       @fixture_name    = fixture_name
-      @attributes_proc = block || lambda { Hash.new }
+      @attributes_proc = block || lambda {}
       @from            = options[:from]
       @class           = options[:class]
 
@@ -45,57 +31,39 @@ module FixtureReplacement
     attr_reader :from
 
     def active_record_class
-      if @class
-        @class
-      elsif derived_fixture?
-        derived_fixture.active_record_class
-      else
-        constantize(fixture_name)
-      end
-    end
-    
-    def procedure_hash
-      os = OpenStruct.new
-      @attributes_proc.call(os)
-      os.marshal_dump
+      @active_record_class ||= find_active_record_class
     end
     
-    def to_hash(hash_to_merge=nil)
-      evaluate_attributes(to_hash_with_procs(hash_to_merge))
-    end
-
-    # Procedure for building the hash:
-    #
-    # 1. Find the hash for the parent builder (specified by :from)
-    # 2. Merge #1 (or an empty hash) with the hash given in the body
-    # 3. If an extra hash is given to the method, merge that in.
-    #
-    # to_hash always prefers later key/value pairs in this sequence.
-    #
-    def to_hash_with_procs(hash_to_merge = nil)
-      if hash_to_merge
-        to_hash_with_procs.merge(hash_to_merge)
-      else
-        if derived_fixture?
-          derived_fixtures_hash.merge(procedure_hash)
-        else
-          procedure_hash
-        end
+    def instantiate(hash_to_merge = {}, instance = active_record_class.new)
+      returning instance do
+        instantiate_parent_fixture(instance)
+        call_attribute_body(instance, hash_to_merge)
+        add_given_keys(instance, hash_to_merge)
       end
     end
     
   private
   
-    def derived_fixtures_hash
-      derived_fixture.to_hash
+    def instantiate_parent_fixture(instance)
+      derived_fixture.instantiate({}, instance) if derived_fixture?
     end
   
-    def find_by_fixture_name(symbol)
-      self.class.find_by_fixture_name(symbol)
+    def call_attribute_body(instance, hash_to_merge)
+      if @attributes_proc.arity == 2
+        @attributes_proc.call(instance, hash_to_merge)
+      else
+        @attributes_proc.call(instance)
+      end
     end
     
+    def add_given_keys(instance, hash_to_merge)
+      hash_to_merge.each do |key, value|
+        instance.send(&quot;#{key}=&quot;, value)
+      end
+    end
+  
     def find_derived_fixture
-      find_by_fixture_name(from)
+      self.class.find_by_fixture_name(from)
     end
     
     def derived_fixture
@@ -110,25 +78,20 @@ module FixtureReplacement
       symbol.to_s.camelize.constantize
     end
     
-    def evaluate_attribute(value)
-      case value
-      when Array
-        value.map! { |element| evaluate_attribute(element) }
-      when Proc
-        value.call
+    def find_active_record_class
+      if @class
+        @class
       else
-        value
-      end
-    end
-    
-    def evaluate_attributes(hash)
-      new_hash = {}
-      
-      hash.each do |key, value|
-        new_hash[key] = evaluate_attribute(value)
+        begin
+          constantize(fixture_name)
+        rescue NameError =&gt; e
+          if derived_fixture?
+            derived_fixture.active_record_class
+          else
+            raise e
+          end
+        end
       end
-      
-      new_hash
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/fixture_replacement/attribute_builder.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,33 +5,6 @@ module FixtureReplacement
       MethodGenerator.new(builder, self).generate_methods
     end
     
-    # Any user defined instance methods (as well as default_*) need the module's class scope to be
-    # accessible inside the block given to attributes_for
-    #
-    # Addresses bug #16858 (see CHANGELOG)
-    def method_added(method)
-      module_function method if method != :method_added
-      public method
-    end
-    
-    def reset!
-      @create_dependent_objects = true
-    end
-    
-    attr_writer :create_dependent_objects
-    
-    def create_dependent_objects?
-      if defined? @create_dependent_objects
-        @create_dependent_objects
-      else
-        @create_dependent_objects = true
-      end
-    end
-    
-    def default_method
-      create_dependent_objects? ? :create : :new
-    end
-    
     def random_string(length=10)
       chars = (&quot;a&quot;..&quot;z&quot;).to_a
       string = &quot;&quot;
@@ -50,7 +23,18 @@ module FixtureReplacement
     end
 
     def reload!
-      load File.dirname(__FILE__) + &quot;/../fixture_replacement.rb&quot;
+      load File.expand_path(File.dirname(__FILE__) + &quot;/../fixture_replacement.rb&quot;)
+    end
+    
+  private
+  
+    # Any user defined instance methods need the module's class scope to be
+    # accessible inside the block given to attributes_for
+    #
+    # Addresses bug #16858 (see CHANGELOG)
+    def method_added(method)
+      module_function method if method != :method_added
+      public method
     end
   end
 end</diff>
      <filename>lib/fixture_replacement/class_methods.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,18 +8,11 @@ module FixtureReplacement
     def generate_methods
       builder       = @builder
       builder_name  = builder.fixture_name
-      builder_class = builder.active_record_class
-      default_method = @evaluation_module.default_method
       
       @evaluation_module.module_eval do
         define_method(&quot;valid_#{builder_name}_attributes&quot;) do |*args|
-          builder.to_hash(*args)
-        end
-
-        define_method(&quot;default_#{builder_name}&quot;) do |*args|
-          lambda do
-            __send__(&quot;#{default_method}_#{builder_name}&quot;, *args)
-          end
+          obj = __send__ &quot;new_#{builder_name}&quot;
+          obj.attributes
         end
 
         define_method(&quot;create_#{builder_name}&quot;) do |*args|
@@ -29,11 +22,15 @@ module FixtureReplacement
         end
         
         define_method(&quot;new_#{builder_name}&quot;) do |*args|
-          new_object = builder_class.new
-          
-          attributes = __send__(&quot;valid_#{builder_name}_attributes&quot;, *args)
-          attributes.each { |attr, value| new_object.__send__(&quot;#{attr}=&quot;, value) }
-          new_object
+          new_object = builder.instantiate(*args)
+        end
+
+        define_method(&quot;default_#{builder_name}&quot;) do |*args|
+          warning = &quot;default_#{builder_name} has been deprecated. &quot;
+          warning &lt;&lt; &quot;Please replace instances of default_#{builder_name} with the new_#{builder_name} method&quot;
+          Kernel.warn(warning)
+
+          __send__ &quot;new_#{builder_name}&quot;
         end
       end
     end</diff>
      <filename>lib/fixture_replacement/method_generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,13 @@
 module FixtureReplacement
   module Version
     unless defined?(FixtureReplacement::VERSION)
-      MAJOR = 2
-      MINOR = 1
-      TINY  = 1
-
-      VERSION = &quot;#{MAJOR}.#{MINOR}.#{TINY}&quot;
+      MAJOR             = 3
+      MINOR             = 0
+      TINY              = 0
+      
+      version_string = &quot;#{MAJOR}.#{MINOR}.#{TINY}&quot;
+      version_string &lt;&lt; &quot; RC#{RELEASE_CANDIDATE}&quot; if defined?(RELEASE_CANDIDATE)
+      VERSION = version_string
     end
   end
 end</diff>
      <filename>lib/fixture_replacement/version.rb</filename>
    </modified>
    <modified>
      <diff>@@ -56,77 +56,31 @@ module FixtureReplacement
     
     it &quot;should use the class name of the inherited attribute, if specified&quot; do
       AttributeBuilder.new(:foo, :class =&gt; Object)
-      AttributeBuilder.new(:bar, :from =&gt; :foo).active_record_class.should == Object      
-    end    
-    
-    it &quot;should not raise an error if the model ends with 's'&quot; do
-      AttributeBuilder.new(:actress).active_record_class.should == Actress
-    end
-  end  
-  
-  describe AttributeBuilder, &quot;hash, with simple arguments (only attributes and fixture name)&quot; do
-    
-    it &quot;should return a hash&quot; do
-      AttributeBuilder.new(:foo).to_hash.should == {}
+      AttributeBuilder.new(:bar, :from =&gt; :foo).active_record_class.should == Bar
     end
     
-    it &quot;should return the attributes hash given&quot; do
-      attributes = AttributeBuilder.new(:foo) do |f|
-        f.foo = :bar
-        f.scott = :taylor
-      end
-      
-      attributes.to_hash.should == {
-        :foo =&gt; :bar,
-        :scott =&gt; :taylor
-      }
-    end
-  end
-  
-  module AttributeFromHelper
-    def setup_attributes
-      @from_attributes = AttributeBuilder.new(:foo) do |u|
-        u.first_name = :scott
-      end
-    end
-  end
-  
-  describe AttributeBuilder, &quot;with an empty hash, after merge with another inherited attribute&quot; do    
-    include AttributeFromHelper
-    
-    before :each do
-      setup_attributes
-      @attributes = AttributeBuilder.new(:bar, :from =&gt; :foo)
+    it &quot;should prefer the constantized name to the derived name&quot; do
+      AttributeBuilder.new(:user)
+      AttributeBuilder.new(:admin, :from =&gt; :user).active_record_class.should == Admin
     end
     
-    it &quot;should contain the keys from the inherited hash only&quot; do
-      @attributes.to_hash.should == {
-        :first_name =&gt; :scott
-      }
-    end
-  end
-  
-  describe AttributeBuilder, &quot;with a hash, after merge with another inherited attributes&quot; do
-    include AttributeFromHelper
-    
-    before :each do
-      setup_attributes      
+    it &quot;should use the derived name if the constantized name fails (doesn't exist)&quot; do
+      AttributeBuilder.new(:foo)
+      no_constant = AttributeBuilder.new(:no_constant, :from =&gt; :foo)
+      no_constant.active_record_class.should == Foo
     end
     
-    it &quot;should overwrite an attribute&quot; do
-      attributes = AttributeBuilder.new :bar, :from =&gt; :foo do |u|
-        u.first_name = :scott
-      end
+    it &quot;should raise a name error if it has no class, the name can't be constantized, and is derived, but the derived class can't be constantized&quot; do
+      builder_one = AttributeBuilder.new(:does_not_exist)
+      builder_two = AttributeBuilder.new(:also_does_not_exist, :from =&gt; :does_not_exist)
       
-      attributes.to_hash.should == {:first_name =&gt; :scott}
+      lambda {
+        builder_two.active_record_class
+      }.should raise_error(NameError)
     end
     
-    it &quot;should keep any new attributes, as well as any attributes which weren't overwritten&quot; do
-      attributes = AttributeBuilder.new(:bar, :from =&gt; :foo) do |os|
-        os.foo = :bar
-      end
-      
-      attributes.to_hash.should == {:foo =&gt; :bar, :first_name =&gt; :scott}      
+    it &quot;should not raise an error if the model ends with 's'&quot; do
+      AttributeBuilder.new(:actress).active_record_class.should == Actress
     end
   end  
 end</diff>
      <filename>spec/fixture_replacement/attribute_builder_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,33 +1,6 @@
 require File.dirname(__FILE__) + &quot;/../spec_helper&quot;
 
 describe FixtureReplacement do
-  before do
-    FixtureReplacement.reset!
-  end
-
-  after do
-    FixtureReplacement.reset!
-  end
-
-  it &quot;should have create as the default&quot; do
-    FixtureReplacement.create_dependent_objects?.should be_true
-  end
-
-  it &quot;should be able to set dependent object creation&quot; do
-    FixtureReplacement.create_dependent_objects = false
-    FixtureReplacement.create_dependent_objects?.should be_false
-  end
-
-  it &quot;should have the default_method as :create when create_dependent_objects?&quot; do
-    FixtureReplacement.create_dependent_objects = true
-    FixtureReplacement.default_method.should equal(:create)
-  end
-
-  it &quot;should have the default_method as :new when create_dependent_objects == false&quot; do
-    FixtureReplacement.create_dependent_objects = false
-    FixtureReplacement.default_method.should equal(:new)
-  end
-  
   describe &quot;random_string&quot; do
     before do
       @fr = FixtureReplacement
@@ -105,4 +78,19 @@ describe FixtureReplacement do
       FR.rails_root.should == &quot;.&quot;
     end
   end
+
+  describe &quot;reload!&quot; do
+    it &quot;should call load on the main fixture replacement file&quot; do
+      file_path = File.expand_path(File.dirname(__FILE__) + &quot;/../../lib/fixture_replacement.rb&quot;)
+      FixtureReplacement.should_receive(:load).with(file_path)
+
+      FixtureReplacement.reload!
+    end
+  end
+  
+  describe &quot;method_added&quot; do
+    it &quot;should be private&quot; do
+      FixtureReplacement.should_not respond_to(:method_added)
+    end
+  end
 end</diff>
      <filename>spec/fixture_replacement/fixture_replacement_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,14 @@ class User &lt; ActiveRecord::Base
 end
 
 class Member &lt; ActiveRecord::Base; end
-class Post   &lt; ActiveRecord::Base; end
+
+class Post &lt; ActiveRecord::Base
+  has_many :comments
+end
+
+class Comment &lt; ActiveRecord::Base
+  belongs_to :post
+end
 
 class Player &lt; ActiveRecord::Base
 end
@@ -35,4 +42,15 @@ end
 
 class Subscription &lt; ActiveRecord::Base
   has_and_belongs_to_many :subscribers
-end
\ No newline at end of file
+end
+
+class Event &lt; ActiveRecord::Base
+  has_one :schedule
+end
+
+class Schedule &lt; ActiveRecord::Base
+  belongs_to :event
+end
+
+class Foo; end
+class Bar; end
\ No newline at end of file</diff>
      <filename>spec/fixture_replacement/fixtures/classes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,14 +24,6 @@ module FixtureReplacement
     models = &quot;user&quot;, &quot;foo&quot;, &quot;scott&quot;
     
     models.each do |model|
-      it &quot;should have the default_#{model} as a (module) method on the module&quot; do
-        @obj.should respond_to(&quot;default_#{model}&quot;)
-      end
-      
-      it &quot;should have the default_#{model} as a private method in the test case&quot; do
-        @obj.private_methods.should include(&quot;default_#{model}&quot;)
-      end
-      
       it &quot;should have the new_#{model} method as a (module) method on the module&quot; do
         @obj.should respond_to(&quot;new_#{model}&quot;)
       end</diff>
      <filename>spec/fixture_replacement/integration/attributes_from_spec_without_block.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,20 +18,6 @@ module FixtureReplacement
       obj.create_foo.should be_a_kind_of(User)
     end
     
-    it &quot;should evaluate any of the default_* methods before returning (if no over-writing key is given)&quot; do
-      obj = use_module do
-        attributes_for :gender do |g|
-          g.sex = &quot;Male&quot;
-        end
-        
-        attributes_for :user do |u|
-          u.gender = default_gender
-        end
-      end
-      
-      obj.create_user.gender.sex.should == &quot;Male&quot;
-    end
-    
     it &quot;should find the correct class name&quot; do
       obj = use_module do
         attributes_for :admin</diff>
      <filename>spec/fixture_replacement/integration/create_method_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ module FixtureReplacement
       @obj = use_module do
         attributes_for :subscriber do |s|
           s.first_name = &quot;Scott&quot;
-          s.subscriptions = [default_subscription]
+          s.subscriptions = [new_subscription]
         end
 
         attributes_for :subscription do |s|
@@ -14,7 +14,7 @@ module FixtureReplacement
         end
 
         attributes_for :subscriber_with_two_subscriptions, :from =&gt; :subscriber, :class =&gt; Subscriber do |s|
-          s.subscriptions = [default_harpers_subscription, default_ny_times_subscription]
+          s.subscriptions = [new_harpers_subscription, new_ny_times_subscription]
         end
 
         attributes_for :harpers_subscription, :class =&gt; Subscription do |s|</diff>
      <filename>spec/fixture_replacement/integration/has_and_belongs_to_many_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,20 +18,6 @@ module FixtureReplacement
       obj.new_foo.should be_a_kind_of(User)
     end
     
-    it &quot;should evaluate any of the default_* methods before returning (if no over-writing key is given)&quot; do
-      obj = use_module do
-        attributes_for :gender do |g|
-          g.sex = &quot;Male&quot;
-        end
-        
-        attributes_for :user do |u|
-          u.gender = default_gender
-        end
-      end
-      
-      obj.new_user.gender.sex.should == &quot;Male&quot;
-    end
-    
     it &quot;should find the correct class name&quot; do
       obj = use_module do
         attributes_for :admin
@@ -94,20 +80,17 @@ module FixtureReplacement
       }.should_not raise_error
     end
     
-    it &quot;should have saved dependent objects with the default_* method&quot; do
-      obj = use_module do
-        attributes_for :gender do |g|
-          g.sex = &quot;Male&quot;
-        end
-        
+    it &quot;should yield the object inside the block&quot; do
+      obj = nil
+    
+      mod = use_module do
         attributes_for :user do |u|
-          u.key = &quot;val&quot;
-          u.gender = default_gender
+          obj = u
         end
       end
-      
-      user = obj.new_user
-      user.gender.should_not be_a_new_record
+    
+      mod.new_user # trigger the block
+      obj.should be_a_kind_of(User)
     end
   end
 end
\ No newline at end of file</diff>
      <filename>spec/fixture_replacement/integration/new_method_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,40 +21,21 @@ module FixtureReplacement
     it &quot;should have the attributes given as a hash&quot; do
       obj = use_module do
         attributes_for :user do |x|
-          x.foo = 17
+          x.key = 17
         end
       end
       
-      obj.valid_user_attributes.should == {
-        :foo =&gt; 17
-      }
+      obj.valid_user_attributes.should include({ &quot;key&quot; =&gt; 17 })
     end
     
     it &quot;should have the attributes given&quot; do
       obj = use_module do
         attributes_for :user do |x|
-          x.bar = 18
+          x.key = 18
         end
       end
       
-      obj.valid_user_attributes.should == {
-        :bar =&gt; 18
-      }
-    end
-    
-    it &quot;should evaluate a default_* call&quot; do
-      obj = use_module do
-        attributes_for :user do |x|
-          x.username = &quot;smtlaissezfaire&quot;
-          x.key = &quot;something&quot;
-        end
-        
-        attributes_for :post do |x|
-          x.user = default_user
-        end
-      end
-
-      obj.valid_post_attributes[:user].should be_a_kind_of(User)
+      obj.valid_user_attributes.should include({ &quot;key&quot; =&gt; 18 })
     end
   end
 end
\ No newline at end of file</diff>
      <filename>spec/fixture_replacement/integration/valid_attributes_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require File.dirname(__FILE__) + &quot;/../spec_helper&quot;
 
 describe FixtureReplacement do
-  it &quot;should be at version 2.0.1&quot; do
-    FixtureReplacement::VERSION.should == &quot;2.1.1&quot;
+  it &quot;should be at version 3.0.0&quot; do
+    FixtureReplacement::VERSION.should == &quot;3.0.0&quot;
   end
 end</diff>
      <filename>spec/fixture_replacement/version_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -58,6 +58,24 @@ module SpecHelperFunctions
         t.column :subscriber_id, :integer
         t.column :subscription_id, :integer
       end
+      
+      create_table :events do |t|
+        t.column :created_at, :datetime
+        t.column :updated_at, :datetime
+      end
+      
+      create_table :schedules do |t|
+        t.integer :event_id
+      end
+      
+      create_table :posts do |t|
+        t.timestamps
+      end
+      
+      create_table :comments do |t|
+        t.integer :post_id
+        t.timestamps
+      end
     end
     
     def use_module(&amp;block)</diff>
      <filename>spec/spec_helpers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ module ::FixtureReplacement
   attributes_for :user do |u|
     u.username = scott
     u.key = &quot;something&quot;
-    u.gender = default_gender
+    u.gender = new_gender
   end
   
 private</diff>
      <filename>test/unit/user_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>README</filename>
    </removed>
    <removed>
      <filename>TODO</filename>
    </removed>
    <removed>
      <filename>spec/fixture_replacement/integration/default_build_method_spec.rb</filename>
    </removed>
    <removed>
      <filename>spec/fixture_replacement/integration/default_method_spec.rb</filename>
    </removed>
    <removed>
      <filename>spec/fixture_replacement/method_generator/evaluation_loading_spec.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>979f1e2636ad7e86016229b23b0b94acab231d6a</id>
    </parent>
    <parent>
      <id>459d850dc02637b48bb129b0dddfcd73ae5fa7c2</id>
    </parent>
  </parents>
  <author>
    <name>Scott Taylor</name>
    <email>scott@railsnewbie.com</email>
  </author>
  <url>http://github.com/smtlaissezfaire/fixturereplacement/commit/3dbb7dabd579ff66e078b256df98edb712b2bc53</url>
  <id>3dbb7dabd579ff66e078b256df98edb712b2bc53</id>
  <committed-date>2009-09-23T00:38:11-07:00</committed-date>
  <authored-date>2009-09-23T00:38:11-07:00</authored-date>
  <message>Merge branch '3.0'</message>
  <tree>3f429cf225679b531ffbd8d41382f3bb9e798e62</tree>
  <committer>
    <name>Scott Taylor</name>
    <email>scott@railsnewbie.com</email>
  </committer>
</commit>
