Class: Embulk::LineGuessPlugin

Inherits:
GuessPlugin show all
Defined in:
lib/embulk/guess_plugin.rb

Direct Known Subclasses

Guess::CsvGuessPlugin

Instance Method Summary collapse

Methods inherited from GuessPlugin

from_java, new_java

Instance Method Details

#guess(config, sample) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/embulk/guess_plugin.rb', line 81

def guess(config, sample)
  # TODO pure-ruby LineDecoder implementation?
  begin
    task = config.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]]), task)
  sample_lines = []
  while decoder.nextFile
    while line = decoder.poll
      sample_lines << line
    end
  end

  return guess_lines(config, sample_lines);
end

#guess_lines(config, sample_lines) ⇒ Object

Raises:

  • (NotImplementedError)


103
104
105
# File 'lib/embulk/guess_plugin.rb', line 103

def guess_lines(config, sample_lines)
  raise NotImplementedError, "LineGuessPlugin#guess_lines(config, sample_lines) must be implemented"
end