Sha256: 11854727396b25555ca3095d1db124d137ca47808dd4af089901fd3608102de9

Contents?: true

Size: 604 Bytes

Versions: 2

Compression:

Stored size: 604 Bytes

Contents

module ROM
  class Relation
    # Extensions for relation classes which provide access to commands
    #
    # @api private
    module Commands
      # @api public
      def command(type, mapper: nil, use: EMPTY_ARRAY, **opts)
        command = commands[type, adapter, to_ast, use, opts]

        if mapper
          command >> mappers[mapper]
        elsif mappers.any? && !command.is_a?(CommandProxy)
          mappers.reduce(command) { |a, (_, e)| a >> e }
        elsif auto_struct? || auto_map?
          command >> self.mapper
        else
          command
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rom-core-4.0.0.beta2 lib/rom/relation/commands.rb
rom-core-4.0.0.beta1 lib/rom/relation/commands.rb