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
67 def init_in(*)
68   @__record_element_ok__ = [String, nil]
69   super
70   @sql_parser = Nuggets::MySQL::Parser.new
71 end
parse(input, &block) click to toggle source
   # File lib/athena/formats/sql.rb
39 def parse(input, &block)
40   num = 0
41 
42   sql_parser.parse(input) { |event, *args|
43     if event == :insert
44       _, _, columns, values = args
45 
46       Athena::Record.new(nil, block) { |record|
47         values.each_with_index { |value, index|
48           if column = columns[index]
49             if column == record_element
50               record.instance_variable_set(:@id, value)
51             end
52 
53             record.update(column, value.to_s, config[column])
54           end
55         }
56       }
57 
58       num += 1
59     end
60   }
61 
62   num
63 end