Sha256: f4bde0a9e2ea3c8b475fcb32171d07259ab4b2ef00568983dff3eefdcd4d1140

Contents?: true

Size: 1.08 KB

Versions: 6

Compression:

Stored size: 1.08 KB

Contents

module Embulk

  class Column < Struct.new(:index, :name, :type)
    def initialize(index, name, type)
      super(index, name, type)
    end

    if Embulk.java?
      def self.from_java_object(java_column)
        Column.new(
          java_column.getIndex,
          java_column.getName,
          Type.from_java_object(java_column.getType))
      end

      def java_object
        Java::Column.new(index, name, Type.to_java_object(type))
      end
    end
  end

  module Type
    if Embulk.java?
      def self.from_java_object(java_type)
        java_type.getName.to_sym
      end

      def self.to_java_object(ruby_type)
        case ruby_type
        when :boolean
          Java::Types::BOOLEAN
        when :long
          Java::Types::LONG
        when :double
          Java::Types::DOUBLE
        when :string
          Java::Types::STRING
        when :timestamp
          Java::Types::TIMESTAMP
        else
          raise ArgumentError, "Unknown type #{ruby_type.inspect}: supported types are :boolean, :long, :double, :string and :timestamp"
        end
      end
    end
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
embulk-0.3.2 lib/embulk/column.rb
embulk-0.3.1 lib/embulk/column.rb
embulk-0.3.0 lib/embulk/column.rb
embulk-0.2.1 lib/embulk/column.rb
embulk-0.2.0 lib/embulk/column.rb
embulk-0.1.0 lib/embulk/column.rb