class TabsTabs::Metrics::Value::Stats

Attributes

period[R]
resolution[R]
values[R]

Public Class Methods

new(period, resolution, values) click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 11
def initialize(period, resolution, values)
  @period, @resolution, @values = period, resolution, values
end

Public Instance Methods

avg() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 39
def avg
  return 0 if count.zero?
  (self.sum.to_f / self.count.to_f).round(Config.decimal_precision)
end
count() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 23
def count
  @count ||= values.map { |v| v["count"] }.sum
end
each(&block) click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 44
def each(&block)
  values.each(&block)
end
first() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 15
def first
  values.first
end
last() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 19
def last
  values.last
end
max() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 35
def max
  @max ||= values.max_by { |v| v["max"] }["max"]
end
min() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 31
def min
  @min ||= values.min_by { |v| v["min"] }["min"]
end
sum() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 27
def sum
  @sum ||= values.map { |v| v["sum"] }.sum
end
to_a() click to toggle source
# File lib/tabs_tabs/metrics/value/stats.rb, line 48
def to_a
  values
end