class DBA::RowParser

Constants

PARSERS

Public Class Methods

new(table_schema) click to toggle source
# File lib/dba/row_parser.rb, line 7
def initialize(table_schema)
  @table_schema = table_schema
end

Public Instance Methods

parse(string) click to toggle source
# File lib/dba/row_parser.rb, line 11
def parse(string)
  string.strip.split("\n").each_with_object({}) do |line, hash|
    key, value = line.split(/:\s*/, 2)

    column_name = key.to_sym

    hash[column_name] = value_parse(column_name, value)
  end
end

Private Instance Methods

value_parse(column_name, value) click to toggle source
# File lib/dba/row_parser.rb, line 30
def value_parse(column_name, value)
  if value == 'NULL'
    nil
  elsif parser = PARSERS[@table_schema.column_type(column_name)]
    parser.call(value)
  else
    value
  end
end