lib/rectify/rspec/database_reporter/display.rb
module Rectify
module RSpec
class DatabaseReporter
class Display
def initialize(query_stats)
@query_stats = query_stats
end
def render
return if query_stats.empty?
header
rows
summary
end
private
attr_reader :query_stats
def target_length
query_stats.longest_target
end
def header
puts ""
puts headers
puts "-" * headers.length
end
def headers
target_header = "Target".ljust(target_length)
type_header = "Type".ljust(10)
queries_header = "Queries".rjust(7)
time_header = "Time (s)".rjust(7)
"#{target_header} | " \
"#{type_header} | " \
"#{queries_header} | " \
"#{time_header}"
end
def rows
query_stats.each do |target, type, count, time|
puts(
"#{target.ljust(target_length)} | " \
"#{type.to_s.ljust(10)} | " \
"#{count.to_s.rjust(7)} | " \
"#{time.to_s.rjust(7)}"
)
end
end
def summary
puts ""
puts "Database Queries: #{query_stats.total_queries} "\
"in #{query_stats.total_time}s"
end
end
end
end
end