Class: ModelObserver::Analyser
- Inherits:
-
Object
- Object
- ModelObserver::Analyser
- Defined in:
- lib/model_observer/analyser.rb
Class Method Summary collapse
Class Method Details
.analyse_single_class(metrics) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/model_observer/analyser.rb', line 16 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 |
.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(#{sum_duration.round(1)}ms) avg(#{average_duration.round(1)}ms)\n" text << analyse_single_class(value) end text.sub!(/\n$/, '') text end |