Class: ModelObserver::Analyser
- Inherits:
-
Object
- Object
- ModelObserver::Analyser
- Defined in:
- lib/model_observer/analyser.rb
Class Method Summary collapse
- .analyse_single_class(metrics) ⇒ Object
- .average_text(average_duration) ⇒ Object
- .result ⇒ Object
- .sum_text(sum_duration) ⇒ Object
Class Method Details
.analyse_single_class(metrics) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/model_observer/analyser.rb', line 24 def analyse_single_class(metrics) return if metrics.empty? primary_key = metrics.first.model_class.primary_key hash = {} metrics.each do |m| hash[m.model_id] ||= 0 hash[m.model_id] += 1 end hash text = "" hash.sort_by{|key, value| key}.each do |key, value| text << " #{primary_key}(#{key}): #{value}\n" if value > 1 end text end |
.average_text(average_duration) ⇒ Object
20 21 22 |
# File 'lib/model_observer/analyser.rb', line 20 def average_text(average_duration) "avg(#{average_duration.round(1)}ms)" end |
.result ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/model_observer/analyser.rb', line 4 def result text = "" Collector.metrics_hash.each do |key, value| sum_duration = value.map(&:duration).sum average_duration = sum_duration / value.count text << "#{key}: #{value.count} #{sum_text(sum_duration)} #{average_text(average_duration)}\n" text << analyse_single_class(value) end text.sub!(/\n$/, '') text end |
.sum_text(sum_duration) ⇒ Object
16 17 18 |
# File 'lib/model_observer/analyser.rb', line 16 def sum_text(sum_duration) "sum(#{sum_duration.round(1)}ms)" end |