Class: FactoryGirl::AttributeAssigner

Inherits:
Object
  • Object
show all
Defined in:
lib/factory_girl/attribute_assigner.rb

Instance Method Summary collapse

Constructor Details

#initialize(build_class, evaluator) ⇒ AttributeAssigner

Returns a new instance of AttributeAssigner.



3
4
5
6
7
8
# File 'lib/factory_girl/attribute_assigner.rb', line 3

def initialize(build_class, evaluator)
  @build_class              = build_class
  @evaluator                = evaluator
  @attribute_list           = evaluator.class.attribute_list
  @attribute_names_assigned = []
end

Instance Method Details

#hashObject



20
21
22
23
24
25
26
27
# File 'lib/factory_girl/attribute_assigner.rb', line 20

def hash
  @evaluator.instance = NullObject.new

  attributes_to_set_on_hash.inject({}) do |result, attribute|
    result[attribute] = get(attribute)
    result
  end
end

#objectObject



10
11
12
13
14
15
16
17
18
# File 'lib/factory_girl/attribute_assigner.rb', line 10

def object
  @evaluator.instance = build_class_instance
  build_class_instance.tap do |instance|
    attributes_to_set_on_instance.each do |attribute|
      instance.send("#{attribute}=", get(attribute))
      @attribute_names_assigned << attribute
    end
  end
end