Class: Embulk::Filter::ExampleFilterPlugin

Inherits:
Embulk::FilterPlugin show all
Defined in:
lib/embulk/data/bundle/embulk/filter/example.rb

Instance Attribute Summary

Attributes inherited from Embulk::FilterPlugin

#in_schema, #out_schema, #page_builder, #task

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Embulk::FilterPlugin

from_java, #init, new_java

Constructor Details

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

Returns a new instance of ExampleFilterPlugin.



22
23
24
25
# File 'lib/embulk/data/bundle/embulk/filter/example.rb', line 22

def initialize(task, in_schema, out_schema, page_builder)
  super
  @value = task['value']
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
# File 'lib/embulk/data/bundle/embulk/filter/example.rb', line 8

def self.transaction(config, in_schema, &control)
  task = {
    'key' => config.param('key', :string, default: "filter_key"),
    'value' => config.param('value', :string, default: "filter_value")
  }

  idx = in_schema.size
  out_columns = in_schema + [Column.new(idx, task['key'], :string)]

  puts "Example filter started."
  yield(task, out_columns)
  puts "Example filter finished."
end

Instance Method Details

#add(page) ⇒ Object



30
31
32
33
34
# File 'lib/embulk/data/bundle/embulk/filter/example.rb', line 30

def add(page)
  page.each do |record|
    @page_builder.add(record + [@value])
  end
end

#closeObject



27
28
# File 'lib/embulk/data/bundle/embulk/filter/example.rb', line 27

def close
end

#finishObject



36
37
38
# File 'lib/embulk/data/bundle/embulk/filter/example.rb', line 36

def finish
  @page_builder.finish
end