class MysqlDumpSlow::Summary

Public Class Methods

new(logs) click to toggle source
# File lib/mysql_dump_slow/summary.rb, line 5
def initialize(logs)
  @logs = SlowLog.new(logs)
  summarize
end

Public Instance Methods

each(&block) click to toggle source
# File lib/mysql_dump_slow/summary.rb, line 16
def each(&block)
  summary.each(&block)
end
sort_by(order) click to toggle source
# File lib/mysql_dump_slow/summary.rb, line 10
def sort_by(order)
  summary.sort_by do |counter|
    counter.send(order.to_sym) if counter.respond_to?(order.to_sym)
  end.reverse
end

Private Instance Methods

summarize() click to toggle source
# File lib/mysql_dump_slow/summary.rb, line 22
def summarize
  @logs.find_each do |log|
    sql = Sql.mask(log.sql_text)
    counter = summary.find{|s| s.abstract_query == sql }
    counter ||= ( summary << Counter.new(sql) ).last
    counter.count_up(log)
  end
  @summary = sort_by(:average_query_time)
end
summary() click to toggle source
# File lib/mysql_dump_slow/summary.rb, line 32
def summary
  @summary ||= []
end