Sha256: 98291f3521f2f8a398d6a505b173c6b1bb13af9cafd600cc247bc5c033327a26
Contents?: true
Size: 1.61 KB
Versions: 4
Compression:
Stored size: 1.61 KB
Contents
module Embulk require 'json' class DataSource < Hash def param(key, type, options={}) if self.has_key?(key) v = self[key] value = case type when :integer Integer(v) when :float Float(v) when :string String(v) when :bool !!v # TODO validation when :hash raise ArgumentError, "Invalid value for :hash" unless v.is_a?(Hash) v when :array raise ArgumentError, "Invalid value for :array" unless v.is_a?(Array) v else unless type.respond_to?(:load) raise ArgumentError, "Unknown type #{type.to_s.dump}" end type.load(v) end elsif options.has_key?(:default) value = options[:default] else raise "Required field #{key.to_s.dump} is not set" end return value end if Embulk.java? def self.from_java(java_data_source_impl) json = java_data_source_impl.toString new.merge!(JSON.parse(json)) end def self.from_ruby_hash(hash) new.merge!(hash) end def to_java json = to_json Java::Injected::ModelManager.readObject(Java::DataSourceImpl.java_class, json.to_java) end def load_config(task_type) Java::Injected::ModelManager.readObjectWithConfigSerDe(task_type.java_class, to_json.to_java) end def load_task(task_type) Java::Injected::ModelManager.readObject(task_type.java_class, to_json.to_java) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
embulk-0.4.3 | lib/embulk/data_source.rb |
embulk-0.4.2 | lib/embulk/data_source.rb |
embulk-0.4.1 | lib/embulk/data_source.rb |
embulk-0.4.0 | lib/embulk/data_source.rb |