Sha256: 8d6a6065a8bc397d8e2cd40b049a92a74fb9f9f4510101dc44ebc444edd256fc
Contents?: true
Size: 900 Bytes
Versions: 2
Compression:
Stored size: 900 Bytes
Contents
module Piglet class Cogroup # :nodoc: include Relation def initialize(relation, description) @join_fields = description.reject { |k, v| ! (k.is_a?(Relation)) } @sources = @join_fields.keys @parallel = description[:parallel] end def to_s joins = @sources.map do |s| fields = @join_fields[s] if fields.is_a?(Enumerable) && fields.size > 1 && (fields.last == :inner || fields.last == :outer) inout = fields.last.to_s.upcase fields = fields[0..-2] end if fields.is_a?(Enumerable) && fields.size > 1 str = "#{s.alias} BY (#{fields.join(', ')})" else str = "#{s.alias} BY #{fields}" end str << " #{inout}" if inout str end str = "COGROUP #{joins.join(', ')}" str << " PARALLEL #{@parallel}" if @parallel str end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
piglet-0.1.1 | lib/piglet/cogroup.rb |
piglet-0.1.0 | lib/piglet/cogroup.rb |