module Utils

Public Class Methods

colored(color, string) click to toggle source
# File lib/performance_promise/utils.rb, line 35
def self.colored(color, string)
  color =
    case color
    when :red
      "\e[31m"
    when :green
      "\e[32m"
    when :cyan
      "\e[36m"
    end
  end_color = "\e[0m"
  "#{color}#{string}#{end_color}"
end
guess_order(db_queries) click to toggle source
# File lib/performance_promise/utils.rb, line 10
def self.guess_order(db_queries)
  order = []
  single_queries = 0
  queries_with_count = summarize_queries(db_queries)
  queries_with_count.each do |query, count|
    if count == 1
      single_queries += 1
    else
      if (lookup_field = /WHERE .*"(.*?_id)" = \?/.match(query[:sql]))
        klass = lookup_field[1].humanize
        order << "#{klass}.N.queries"
      else
        order << "n(???)"
      end
    end
  end

  if single_queries == 1
    order << '1.query'
  elsif single_queries > 1
    order << "#{single_queries}.queries"
  end
  order.join(" + ")
end
summarize_queries(db_queries) click to toggle source
# File lib/performance_promise/utils.rb, line 2
def self.summarize_queries(db_queries)
  summary = Hash.new(0)
  db_queries.each do |query|
    summary[query.except(:duration)] += 1
  end
  summary
end