Class: Embulk::LineGuessPlugin

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

Direct Known Subclasses

GuessCsv

Instance Method Summary collapse

Methods inherited from GuessPlugin

from_java_object, java_object

Instance Method Details

#guess(config, sample) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/embulk/guess_plugin.rb', line 86

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.java_object]]), 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)


108
109
110
# File 'lib/embulk/guess_plugin.rb', line 108

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