class ExplainParser::Base

Public Class Methods

call(explain) click to toggle source
# File lib/explain_parser.rb, line 68
def self.call(explain)
  new(explain).call
end

Public Instance Methods

build() click to toggle source
# File lib/explain_parser.rb, line 101
def build
  values_list.reduce([]) do |explains, values|
    params = keys.zip(cleanup_values(values)).inject({}) { |h, (k, v)| h[k.downcase] = v; h }
    explains << ExplainParser::Explain.new(params)
    explains
  end
end
call() click to toggle source
# File lib/explain_parser.rb, line 72
def call
  build
end
cleanup_values(dirty_values) click to toggle source
# File lib/explain_parser.rb, line 84
def cleanup_values(dirty_values)
  dirty_values.map do |val|
    case val
    when String
      stripped_value = val.strip
      stripped_value == 'NULL' ? nil : stripped_value
    else
      val
    end
  end.reject do |val|
    case val
    when String
      val.empty?
    end
  end
end
keys() click to toggle source
# File lib/explain_parser.rb, line 76
def keys
  'override me'
end
values_list() click to toggle source
# File lib/explain_parser.rb, line 80
def values_list
  'override me'
end