class Embulk::Parser::ScriptRuby
Public Class Methods
transaction(config) { |task, columns| ... }
click to toggle source
# File lib/embulk/parser/script_ruby.rb, line 7 def self.transaction(config, &control) # configuration code: task = { "script" => config.param("script", :string), "class" => config.param("class", :string), "columns" => config.param("columns", :array), } c = 0 columns = task['columns'].map do | e | col = Column.new(c, e['name'], e['type'].to_sym) c+=1 col end yield(task, columns) end
Public Instance Methods
init()
click to toggle source
# File lib/embulk/parser/script_ruby.rb, line 25 def init # initialization code: @script = task['script'] @columns = task['columns'] require @script @parser_class = Object.const_get(task['class']).new() end
run(file_input)
click to toggle source
# File lib/embulk/parser/script_ruby.rb, line 34 def run(file_input) while file = file_input.next_file @parser_class.parser(file) do |record| out_record = [] @columns.each do | e | out_record << record[e['name']] if record.has_key?(e['name']) end page_builder.add(out_record) if out_record.size > 0 end end page_builder.finish end