Permalink
Browse files

Move factory associations logic to evaluator_class

evaluator_class contains the fully-inherited list of attributes; this
includes parent classes, traits, etc. When calculating associations for
an individual factory, the factory should use inheritance to build the
list instead of merely accessing association attributes on itself.

Closes #293
  • Loading branch information...
1 parent 852eea8 commit 6cddb37ecbfcedea275d690c51f42ff2d76bb715 @joshuaclayton joshuaclayton committed Feb 8, 2012
Showing with 1 addition and 4 deletions.
  1. +1 −1 lib/factory_girl/factory.rb
  2. +0 −1 lib/factory_girl/null_factory.rb
  3. +0 −2 spec/factory_girl/null_factory_spec.rb
@@ -53,7 +53,7 @@ def human_names
end
def associations
- parent.associations + attributes.associations
+ evaluator_class.attribute_list.associations
end
# Names for this factory, including aliases.
@@ -7,7 +7,6 @@ def initialize
end
delegate :defined_traits, :callbacks, :attributes, :constructor, :to => :definition
- delegate :associations, :to => :attributes
def compile; end
def class_name; end
@@ -5,12 +5,10 @@
it { should delegate(:callbacks).to(:definition) }
it { should delegate(:attributes).to(:definition) }
it { should delegate(:constructor).to(:definition) }
- it { should delegate(:associations).to(:attributes) }
its(:compile) { should be_nil }
its(:class_name) { should be_nil }
its(:default_strategy) { should == :create }
its(:attributes) { should be_an_instance_of(FactoryGirl::AttributeList) }
- its(:associations) { should be_empty }
its(:evaluator_class) { should == FactoryGirl::Evaluator }
end

0 comments on commit 6cddb37

Please sign in to comment.