class Embulk::TextGuessPlugin
def guess(config, sample)
def guess(config, sample) if config.fetch('parser', {}).fetch('charset', nil).nil? require 'embulk/guess/charset' charset_guess = Guess::CharsetGuessPlugin.new return charset_guess.guess(config, sample) end # TODO pure-ruby LineDecoder implementation? begin parser_task = config.param("parser", :hash, default: {}).load_config(Java::LineDecoder::DecoderTask) rescue # TODO log? p $! p $!.backtrace return DataSource.new end decoder = Java::LineDecoder.new(Java::ListFileInput.new([[sample.to_java]]), parser_task) sample_text = '' while decoder.nextFile first = true while line = decoder.poll if first first = false else sample_text << parser_task.getNewline().getString() end sample_text << line end end return guess_text(config, sample_text); end
def guess_text(config, sample_text)
def guess_text(config, sample_text) raise NotImplementedError, "TextGuessPlugin#guess_text(config, sample_text) must be implemented" end