module Embulk
TODO(v2): Remove this file. github.com/embulk/embulk/issues/562
Constants
- DEPRECATED_MESSAGE
- VERSION_INTERNAL
Public Class Methods
const_missing(name)
click to toggle source
Calls superclass method
# File lib/embulk/version.rb, line 9 def self.const_missing(name) if name == :VERSION unless @@warned if Embulk.method_defined?(:logger) Embulk.logger.warn(DEPRECATED_MESSAGE) @@warned = true else STDERR.puts(DEPRECATED_MESSAGE) end end return VERSION_INTERNAL else super end end
lib_path(path)
click to toggle source
# File lib/embulk.rb, line 5 def self.lib_path(path) path = '' if path == '/' jar, resource = __FILE__.split("!", 2) if resource lib = resource.split("/")[0..-2].join("/") "#{jar}!#{lib}/#{path}" elsif __FILE__ =~ /^(?:classpath|uri:classloader):/ lib = __FILE__.split("/")[0..-2].join("/") "#{lib}/#{path}" else lib = File.expand_path File.dirname(__FILE__) File.join(lib, *path.split("/")) end end
logger()
click to toggle source
# File lib/embulk/logger.rb, line 144 def self.logger @@logger end
logger=(logger)
click to toggle source
# File lib/embulk/logger.rb, line 148 def self.logger=(logger) @@logger = logger end
require_classpath(already_warned=false)
click to toggle source
# File lib/embulk.rb, line 20 def self.require_classpath(already_warned=false) if __FILE__.include?("!") # single jar. __FILE__ should point path/to/embulk.jar!/embulk.rb # which means that embulk.jar is already loaded in this JVM. elsif __FILE__ =~ /^(?:classpath|uri:classloader):/ # already in classpath else # gem package. __FILE__ should point path/to/embulk/lib/embulk.rb # that requires here to load ../classpath/*.jar to start EmbulkEmbed. unless already_warned STDERR.puts "################################################################################" STDERR.puts "[WARN] Embulk's gem package is deprecated, and will be removed from v0.9." STDERR.puts "[WARN] Use the jar version installed from http://dl.embulk.org/ instead." STDERR.puts "[WARN] See the issue and comment at: https://github.com/embulk/embulk/issues/628" STDERR.puts "################################################################################" STDERR.puts "" end gem_root = File.expand_path('..', File.dirname(__FILE__)) classpath_dir = File.join(gem_root, "classpath") jars = Dir.entries(classpath_dir).select{|f| f =~ /\.jar$/ }.sort jars.each do |jar| require File.join(classpath_dir, jar) end end end
setup(system_config={})
click to toggle source
# File lib/embulk.rb, line 50 def self.setup(system_config={}) STDERR.puts "################################################################################" STDERR.puts "[WARN] Embulk's gem package is deprecated, and will be removed from v0.9." STDERR.puts "[WARN] Use the jar version installed from http://dl.embulk.org/ instead." STDERR.puts "[WARN] See the issue and comment at: https://github.com/embulk/embulk/issues/628" STDERR.puts "################################################################################" STDERR.puts "" unless RUBY_PLATFORM =~ /java/i raise "Embulk.setup works only with JRuby." end # require 'json' -- was required to format the system config into a JSON string. require_classpath(true) require 'embulk/runner' # see also embulk/java/bootstrap.rb loaded by JRubyScriptingModule runner_java = EmbulkRunner.new(Java::org.embulk.EmbulkSetup::setup(Java::java.util.HashMap.new(system_config))) Embulk.const_set :Runner, runner_java end
Public Instance Methods
set(ruby_object)
click to toggle source
# File lib/embulk/page_builder.rb, line 4 def set(ruby_object) # Using |java_send| so that it calls Java's correct overloaded |set| method, not Ruby's itself. if ruby_object.nil? self.java_send(:setNull, []) elsif ruby_object == true || ruby_object == false self.java_send(:set, [::Java::boolean], ruby_object.to_java(:boolean)) elsif ruby_object.kind_of?(Integer) self.java_send(:set, [::Java::long], ruby_object.to_java(:long)) elsif ruby_object.kind_of?(Float) self.java_send(:set, [::Java::double], ruby_object.to_java(:double)) elsif ruby_object.kind_of?(String) self.java_send(:set, [::Java::java.lang.String], ruby_object.to_java(::Java::java.lang.String)) elsif ruby_object.kind_of?(Time) self.java_send(:set, [::Java::org.embulk.spi.time.Timestamp], ::Java::org.embulk.spi.time.Timestamp.ofEpochSecond(ruby_object.to_i, ruby_object.nsec)) else self.java_send(:set, [::Java::org.msgpack.value.Value], ::Java::org.msgpack.core.MessagePack.newDefaultUnpacker(ruby_object.to_msgpack.to_java_bytes).unpackValue()) end end