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