class GraphQL::Analyzer::Parser::Mysql
Private Instance Methods
parse()
click to toggle source
# File lib/graphql/analyzer/parser/mysql.rb, line 7 def parse explained_output_by_query = explain_output.split(/^EXPLAIN.*$/).map(&:chomp).reject(&:empty?) queries = explain_output.split("\n").select { |l| l =~ /^EXPLAIN.*$/ } results = [] queries.each.with_index do |query, i| keys, *values, _ = explained_output_by_query[i] .split("\n") .map(&:chomp) .reject { |line| line.empty? || line =~ /^\+.*\+$/ } fields = keys[1..-1].split('|').map(&:strip).map(&:downcase) explained_queries = values.map do |value| parsed_value = value[1..-1].split("|").map(&:strip) fields.zip(parsed_value).to_h end results << Result.new(query, explained_queries) end results end