class Embulk::Plugin::FilterConvert

Public Class Methods

new(task, in_schema, out_schema, page_builder) click to toggle source
Calls superclass method
# File lib/embulk/filter_convert.rb, line 24
def initialize(task, in_schema, out_schema, page_builder)
  super
  @columns = task['columns']
end
transaction(config, in_schema) { |task, out_columns| ... } click to toggle source
# File lib/embulk/filter_convert.rb, line 8
def self.transaction(config, in_schema, &control)
  task = {
    'columns' => config.param('columns', :array),
  }

  out_columns = []

  record = 0
  task['columns'].each do |column|
    out_columns << Column.new(record, column['name'], column['type'].to_sym)
    record += 1
  end

  yield(task, out_columns)
end

Public Instance Methods

add(page) click to toggle source
# File lib/embulk/filter_convert.rb, line 32
def add(page)
  page.each do |record|
    hash = Hash[in_schema.names.zip(record)]
    out_record = []
    @columns.each do |column|
      out_record << hash[column['name']]
    end
    @page_builder.add(out_record)
  end
end
close() click to toggle source
# File lib/embulk/filter_convert.rb, line 29
def close
end
finish() click to toggle source
# File lib/embulk/filter_convert.rb, line 43
def finish
  @page_builder.finish
end