Class: FactoryBot::AttributeAssigner Private
- Inherits:
-
Object
- Object
- FactoryBot::AttributeAssigner
- Defined in:
- lib/factory_bot/attribute_assigner.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
-
#hash ⇒ Object
private
constructs a Hash-based factory product.
-
#initialize(evaluator, build_class, &instance_builder) ⇒ AttributeAssigner
constructor
private
A new instance of AttributeAssigner.
-
#object ⇒ Object
private
constructs an object-based factory product.
Constructor Details
#initialize(evaluator, build_class, &instance_builder) ⇒ AttributeAssigner
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of AttributeAssigner.
4 5 6 7 8 9 10 |
# File 'lib/factory_bot/attribute_assigner.rb', line 4 def initialize(evaluator, build_class, &instance_builder) @build_class = build_class @instance_builder = instance_builder @evaluator = evaluator @attribute_list = evaluator.class.attribute_list @attribute_names_assigned = [] end |
Instance Method Details
#hash ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
constructs a Hash-based factory product
24 25 26 27 28 29 30 |
# File 'lib/factory_bot/attribute_assigner.rb', line 24 def hash @evaluator.instance = build_hash attributes_to_set_on_hash.each_with_object({}) do |attribute, result| result[attribute] = get(attribute) end end |
#object ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
constructs an object-based factory product
13 14 15 16 17 18 19 20 21 |
# File 'lib/factory_bot/attribute_assigner.rb', line 13 def object @evaluator.instance = build_class_instance build_class_instance.tap do |instance| attributes_to_set_on_instance.each do |attribute| instance.public_send(:"#{attribute}=", get(attribute)) @attribute_names_assigned << attribute end end end |