class LogfileInterval::Aggregator::Base
Attributes
name[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 12 def initialize(options = {}) @name = options[:name] @val = Util::Counter.new @size = Util::Counter.new @options = options end
Public Instance Methods
add(value, group_by_value = nil)
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 31 def add(value, group_by_value = nil) raise NotImplementedError end
value(group = nil)
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 19 def value(group = nil) val(key(group)) end
values()
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 23 def values if single_value? value else self.inject({}) { |h, v| h[v[0]] = v[1]; h } end end
Private Instance Methods
average(k)
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 56 def average(k) @size[k] > 0 ? @val[k].to_f / @size[k].to_f : 0 end
each() { |k, val(k)| ... }
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 46 def each @val.each_key do |k| yield k, val(k) end end
key(group_by = nil)
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 37 def key(group_by = nil) group_by ? group_by : :all end
single_value?()
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 41 def single_value? return true if @val.empty? @val.keys.count == 1 && @val.keys.first == :all end
val(k)
click to toggle source
# File lib/logfile_interval/aggregator/base.rb, line 52 def val(k) @val[k] end