Sha256: 220193cd2a542d46b7bfe22c10254e1aa2371dfa63ef12023863a18c5838f3d6

Contents?: true

Size: 993 Bytes

Versions: 4

Compression:

Stored size: 993 Bytes

Contents

# encoding: utf-8

module Veritas
  class Relation
    module Operation

      # A mixin for relations that combine their operands
      module Combination
        include Binary

        # Combine tuples together and yield the joined tuple
        #
        # @param [Header] header
        #   the header to use for the resulting tuples
        # @param [Tuple] left_tuple
        #   the left tuple to join with
        # @param [Enumerable<Tuple>] right_tuples
        #   the tuples to join to the left tuple
        #
        # @yield [tuple]
        #
        # @yieldparam [Tuple] tuple
        #   each joined tuple
        #
        # @return [undefined]
        #
        # @api private
        def self.combine_tuples(header, left_tuple, right_tuples)
          right_tuples.each do |right_tuple|
            yield left_tuple.join(header, right_tuple)
          end
        end

      end # module Combination
    end # module Operation
  end # class Relation
end # module Veritas

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
veritas-0.0.7 lib/veritas/relation/operation/combination.rb
veritas-0.0.6 lib/veritas/relation/operation/combination.rb
veritas-0.0.5 lib/veritas/relation/operation/combination.rb
veritas-0.0.4 lib/veritas/relation/operation/combination.rb