Skip to content

Commit

Permalink
Move factory associations logic to evaluator_class
Browse files Browse the repository at this point in the history
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
joshuaclayton committed Feb 8, 2012
1 parent 852eea8 commit 6cddb37
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 4 deletions.
2 changes: 1 addition & 1 deletion lib/factory_girl/factory.rb
Expand Up @@ -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.
Expand Down
1 change: 0 additions & 1 deletion lib/factory_girl/null_factory.rb
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions spec/factory_girl/null_factory_spec.rb
Expand Up @@ -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.