Class: Embulk::Plugin::FilterConvert

Inherits:
FilterPlugin
  • Object
show all
Defined in:
lib/embulk/filter_convert.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(task, in_schema, out_schema, page_builder) ⇒ FilterConvert

Returns a new instance of FilterConvert.



24
25
26
27
# File 'lib/embulk/filter_convert.rb', line 24

def initialize(task, in_schema, out_schema, page_builder)
  super
  @columns = task['columns']
end

Class Method Details

.transaction(config, in_schema) {|task, out_columns| ... } ⇒ Object

Yields:

  • (task, out_columns)


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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

Instance Method Details

#add(page) ⇒ Object



32
33
34
35
36
37
38
39
40
41
# 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

#closeObject



29
30
# File 'lib/embulk/filter_convert.rb', line 29

def close
end

#finishObject



43
44
45
# File 'lib/embulk/filter_convert.rb', line 43

def finish
  @page_builder.finish
end