class TestProf::TagProf::Result
Object
holding all the stats for tags
Attributes
data[R]
events[R]
tag[R]
Public Class Methods
new(tag, events = [])
click to toggle source
# File lib/test_prof/tag_prof/result.rb, line 9 def initialize(tag, events = []) @tag = tag @events = events @data = Hash.new do |h, k| h[k] = {value: k, count: 0, time: 0.0} h[k].merge!(events.map { |event| [event, 0.0] }.to_h) unless events.empty? h[k] end end
Public Instance Methods
to_json(*args)
click to toggle source
# File lib/test_prof/tag_prof/result.rb, line 29 def to_json(*args) { tag: tag, data: data.values, events: events }.to_json(*args) end
track(tag, time:, events: {})
click to toggle source
# File lib/test_prof/tag_prof/result.rb, line 21 def track(tag, time:, events: {}) data[tag][:count] += 1 data[tag][:time] += time events.each do |k, v| data[tag][k] += v end end