class Athena::Formats::MYSQL

Attributes

sql_parser[R]

Private Instance Methods

init_in(*) click to toggle source
Calls superclass method Athena::Formats::Base#init_in
# File lib/athena/formats/sql.rb, line 67
def init_in(*)
  @__record_element_ok__ = [String, nil]
  super
  @sql_parser = Nuggets::MySQL::Parser.new
end
parse(input, &block) click to toggle source
# File lib/athena/formats/sql.rb, line 39
def parse(input, &block)
  num = 0

  sql_parser.parse(input) { |event, *args|
    if event == :insert
      _, _, columns, values = args

      Athena::Record.new(nil, block) { |record|
        values.each_with_index { |value, index|
          if column = columns[index]
            if column == record_element
              record.instance_variable_set(:@id, value)
            end

            record.update(column, value.to_s, config[column])
          end
        }
      }

      num += 1
    end
  }

  num
end