class Embulk::Filter::Enum

Public Class Methods

transaction(config, in_schema) { |task, out_columns| ... } click to toggle source
# 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

Public Instance Methods

add(page) click to toggle source
# 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
close() click to toggle source
# File lib/embulk/filter/enum.rb, line 20
def close
end
finish() click to toggle source
# File lib/embulk/filter/enum.rb, line 36
def finish
  page_builder.finish
end
init() click to toggle source
# File lib/embulk/filter/enum.rb, line 16
def init
  @enums = task["enums"]
end