lib/rectify/rspec/database_reporter/query_stats.rb
module Rectify
module RSpec
class DatabaseReporter
class QueryStats
def initialize
@stats = Hash.new { |h, k| h[k] = [] }
end
def add(example, start, finish, query)
info = QueryInfo.new(example, start, finish, query)
return if info.ignore?
stats[info.target] << info
end
def each
stats.sort.each do |target, infos|
yield(
target,
infos.first.type,
infos.count,
infos.sum(&:time).round(5)
)
end
end
def total_queries
stats.values.flatten.count
end
def total_time
stats.values.flatten.sum(&:time).round(5)
end
def longest_target
return 0 if stats.empty?
stats.keys.max_by(&:length).length
end
def empty?
stats.empty?
end
private
attr_reader :stats
end
end
end
end