Sha256: 632f10fdabea2a79241d7692ab2256ac19fde29398451540794e302f727f0ec0

Contents?: true

Size: 826 Bytes

Versions: 4

Compression:

Stored size: 826 Bytes

Contents

module Piglet
  module Inout
    class Load # :nodoc:
      include Piglet::Relation::Relation
      include StorageTypes
    
      def initialize(path, options={})
        options ||= {}
        @path, @using, @schema = path, options[:using], options[:schema]
      end
    
      def schema
        Piglet::Schema::Tuple.parse(@schema) if @schema
      end
    
      def to_s
        str  = "LOAD '#{@path}'"
        str << " USING #{resolve_load_store_function(@using)}" if @using
        str << " AS (#{schema_string})" if @schema
        str
      end
    
    private
        
      def schema_string
        @schema.map do |field|
          if field.is_a?(Enumerable)
            field.map { |f| f.to_s }.join(':')
          else
            field.to_s
          end
        end.join(', ')
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
piglet-0.2.4 lib/piglet/inout/load.rb
piglet-0.2.3 lib/piglet/inout/load.rb
piglet-0.2.2 lib/piglet/inout/load.rb
piglet-0.2.0 lib/piglet/inout/load.rb