class RailsRequestStats::Report

Constants

FORMAT_FLAG

Attributes

print_memory_stats[RW]
request_stats[R]

Public Class Methods

new(request_stats) click to toggle source
# File lib/rails_request_stats/report.rb, line 12
def initialize(request_stats)
  @request_stats = request_stats
end

Public Instance Methods

avg(collection) click to toggle source
# File lib/rails_request_stats/report.rb, line 45
def avg(collection)
  total(collection).to_f / collection.size
end
exit_report_text() click to toggle source
# File lib/rails_request_stats/report.rb, line 29
def exit_report_text
  controller_information = "[RailsRequestStats] #{@request_stats.action.upcase}:#{@request_stats.format} \"#{@request_stats.path}\""
  avg_view_runtime = "AVG view_runtime: #{format_number(avg(runtime_stats.view_runtime_collection))}ms"
  avg_db_runtime = "AVG db_runtime: #{format_number(avg(runtime_stats.db_runtime_collection))}ms"
  avg_generated_object_count = "AVG generated_object_count: #{format_number(avg(object_space_stats.generated_object_count_collection))}"
  min_query_count = "MIN query_count: #{format_number(database_query_stats.query_count_collection.min)}"
  max_query_count = "MAX query_count: #{format_number(database_query_stats.query_count_collection.max)}"
  request_count = "from #{format_number(runtime_stats.view_runtime_collection.size)} requests"

  "#{controller_information} (#{[avg_view_runtime, avg_db_runtime, avg_generated_object_count, min_query_count, max_query_count].join(' | ')}) #{request_count}"
end
report_text() click to toggle source
# File lib/rails_request_stats/report.rb, line 16
def report_text
  avg_view_runtime = "AVG view_runtime: #{format_number(avg(runtime_stats.view_runtime_collection))}ms"
  avg_db_runtime = "AVG db_runtime: #{format_number(avg(runtime_stats.db_runtime_collection))}ms"
  avg_generated_object_count = "AVG generated_object_count: #{format_number(avg(object_space_stats.generated_object_count_collection))}"
  query_count = "query_count: #{format_number(database_query_stats.query_count_collection.last)}"
  cached_query_count = "cached_query_count: #{format_number(database_query_stats.cached_query_count_collection.last)}"
  cache_read_count = "cache_read_count: #{format_number(cache_stats.cache_read_count_collection.last)}"
  cache_hit_count = "cache_hit_count: #{format_number(cache_stats.cache_hit_count_collection.last)}"
  generated_objects = self.class.print_memory_stats ? "generated_objects: #{object_space_stats.last_stats_generated_objects}" : nil

  "[RailsRequestStats] (#{[avg_view_runtime, avg_db_runtime, avg_generated_object_count, query_count, cached_query_count, cache_read_count, cache_hit_count, generated_objects].compact.join(' | ')})"
end
total(collection) click to toggle source
# File lib/rails_request_stats/report.rb, line 41
def total(collection)
  collection.reduce(:+)
end

Private Instance Methods

cache_stats() click to toggle source
# File lib/rails_request_stats/report.rb, line 67
def cache_stats
  @cache_stats ||= @request_stats.cache_stats
end
database_query_stats() click to toggle source
# File lib/rails_request_stats/report.rb, line 55
def database_query_stats
  @database_query_stats ||= @request_stats.database_query_stats
end
format_number(number) click to toggle source
# File lib/rails_request_stats/report.rb, line 51
def format_number(number)
  format(FORMAT_FLAG, number || 0)
end
object_space_stats() click to toggle source
# File lib/rails_request_stats/report.rb, line 59
def object_space_stats
  @object_space_stats ||= @request_stats.object_space_stats
end
runtime_stats() click to toggle source
# File lib/rails_request_stats/report.rb, line 63
def runtime_stats
  @runtime_stats ||= @request_stats.runtime_stats
end