Sha256: 27d88353f6f7d7ae46fe5af82cc94aaebf7c68442657d02f99f762ab79c2814f
Contents?: true
Size: 1.62 KB
Versions: 6
Compression:
Stored size: 1.62 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_object(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 java_object 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
6 entries across 6 versions & 1 rubygems