Class: RailsRequestStats::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_request_stats/report.rb

Constant Summary collapse

FORMAT_FLAG =
'%g'.freeze

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_stats) ⇒ Report

Returns a new instance of Report.



12
13
14
# File 'lib/rails_request_stats/report.rb', line 12

def initialize(request_stats)
  @request_stats = request_stats
end

Class Attribute Details

Returns the value of attribute print_memory_stats.



6
7
8
# File 'lib/rails_request_stats/report.rb', line 6

def print_memory_stats
  @print_memory_stats
end

Instance Attribute Details

#request_statsObject (readonly)

Returns the value of attribute request_stats.



10
11
12
# File 'lib/rails_request_stats/report.rb', line 10

def request_stats
  @request_stats
end

Instance Method Details

#avg(collection) ⇒ Object



43
44
45
# File 'lib/rails_request_stats/report.rb', line 43

def avg(collection)
  total(collection).to_f / collection.size
end

#exit_report_textObject



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rails_request_stats/report.rb', line 27

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_textObject



16
17
18
19
20
21
22
23
24
25
# 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)}"
  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, generated_objects].compact.join(' | ')})"
end

#total(collection) ⇒ Object



39
40
41
# File 'lib/rails_request_stats/report.rb', line 39

def total(collection)
  collection.reduce(:+)
end