class ROM::Factory::Builder
@api private
Public Instance Methods
extract_tuple(args)
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 79 def extract_tuple(args) tuple_evaluator.extract_tuple(args) end
persistable()
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 59 def persistable Persistable.new(self, relation) end
relation()
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 74 def relation tuple_evaluator.relation end
struct(*args)
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 41 def struct(*args) traits, attrs = extract_tuple(args) validate_keys(traits, attrs, allow_associations: true) tuple_evaluator.struct(*args) end
Also aliased as: create
struct_namespace(namespace)
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 50 def struct_namespace(namespace) if options[:struct_namespace][:overridable] with(struct_namespace: options[:struct_namespace].merge(namespace: namespace)) else self end end
tuple(*args)
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 34 def tuple(*args) traits, attrs = extract_tuple(args) tuple_evaluator.defaults(traits, attrs) end
tuple_evaluator()
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 64 def tuple_evaluator @__tuple_evaluator__ ||= TupleEvaluator.new(attributes, tuple_evaluator_relation, traits) end
tuple_evaluator_relation()
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 69 def tuple_evaluator_relation options[:relation].struct_namespace(options[:struct_namespace][:namespace]) end
validate_keys(traits, tuple, allow_associations: false)
click to toggle source
@api private
# File lib/rom/factory/builder.rb, line 84 def validate_keys(traits, tuple, allow_associations: false) schema_keys = relation.schema.attributes.map(&:name) assoc_keys = tuple_evaluator.assoc_names(traits) unknown_keys = tuple.keys - schema_keys - assoc_keys unknown_keys = unknown_keys - relation.schema.associations.to_h.keys if allow_associations raise UnknownFactoryAttributes, unknown_keys unless unknown_keys.empty? end