Sha256: de00a638e90913039ac0eb7a1d309cdb1a30a258a596d09b4118f6dbc8668f92
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
require 'dry/core/constants' require 'rom/struct' require 'rom/initializer' require 'rom/factory/tuple_evaluator' require 'rom/factory/builder/persistable' module ROM::Factory # @api private class Builder extend ROM::Initializer include Dry::Core::Constants # @!attribute [r] attributes # @return [ROM::Factory::Attributes] param :attributes # @!attribute [r] traits # @return [Hash] param :traits, default: -> { EMPTY_HASH } # @!attribute [r] relation # @return [ROM::Relation] option :relation, reader: false # @api private def tuple(*traits, **attrs) tuple_evaluator.defaults(traits, attrs) end # @api private def struct(*traits, **attrs) tuple_evaluator.struct(*traits, attrs) end alias_method :create, :struct # @api private def struct_namespace(namespace) with(relation: relation.struct_namespace(namespace)) end # @api private def persistable(struct_namespace = ROM::Struct) Persistable.new(self, relation.struct_namespace(struct_namespace)) end # @api private def tuple_evaluator @__tuple_evaluator__ ||= TupleEvaluator.new(attributes, options[:relation], traits) end # @api private def relation tuple_evaluator.relation end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rom-factory-0.7.0 | lib/rom/factory/builder.rb |