Class: Embulk::Filter::Enum

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

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

Yields:

  • (task, out_columns)


7
8
9
10
11
12
13
14
# File 'lib/embulk/filter/enum.rb', line 7

def self.transaction(config, in_schema, &control)
  task = {
    "enums" => config.param("enums", :array, default: [])
  }

  out_columns = in_schema
  yield(task, out_columns)
end

Instance Method Details

#add(page) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/embulk/filter/enum.rb', line 23

def add(page)
  page.each do |record|
    result = {}
    record = Hash[in_schema.names.zip(record)]

    record.each do |key, value|
      enum = @enums.find {|e| e.key?(key) }
      result[key] = enum.nil? ? value : enum[key]["values"][value] || enum[key]["else"]
    end
    page_builder.add(result.values)
  end
end

#closeObject



20
21
# File 'lib/embulk/filter/enum.rb', line 20

def close
end

#finishObject



36
37
38
# File 'lib/embulk/filter/enum.rb', line 36

def finish
  page_builder.finish
end

#initObject



16
17
18
# File 'lib/embulk/filter/enum.rb', line 16

def init
  @enums = task["enums"]
end