class Conscriptor::EventCounter
Public Class Methods
new(logger=simple_logger)
click to toggle source
# File lib/conscriptor/event_counter.rb, line 8 def initialize(logger=simple_logger) @logger = logger clear end
Public Instance Methods
[](event)
click to toggle source
# File lib/conscriptor/event_counter.rb, line 28 def [](event) @counts[event] end
clear(*keys)
click to toggle source
# File lib/conscriptor/event_counter.rb, line 36 def clear(*keys) if keys.empty? @counts = {} @errors = {} else keys.each do |key| @counts.delete(key) @errors.delete(key) end end @key = {} end
dump()
click to toggle source
# File lib/conscriptor/event_counter.rb, line 61 def dump @logger.info("\n#{@counts.sort_by { |_k, v| -v }.map { |k, v| "#{k} = #{v}" }.join("\n")}") unless @errors.empty? require 'colorize' @errors.each do |event, errors| @logger.info "Error #{event} (#{errors.count}):\n#{histogram(errors)}".red end end print_key end
empty?()
click to toggle source
# File lib/conscriptor/event_counter.rb, line 49 def empty? @counts.empty? end
errors?()
click to toggle source
# File lib/conscriptor/event_counter.rb, line 53 def errors? !@errors.empty? end
print_key()
click to toggle source
# File lib/conscriptor/event_counter.rb, line 75 def print_key return if @key.empty? puts "\nKey" @key.each do |event, symbol| puts " #{symbol} = #{event} (#{@counts[event]})" end end
record(event)
click to toggle source
# File lib/conscriptor/event_counter.rb, line 13 def record(event) record_many(event, 1) end
record_and_print(symbol, event)
click to toggle source
# File lib/conscriptor/event_counter.rb, line 17 def record_and_print(symbol, event) record(event) print symbol @key[event] = symbol end
record_error(event, error)
click to toggle source
# File lib/conscriptor/event_counter.rb, line 32 def record_error(event, error) (@errors[event] ||= []) << error end
record_many(event, how_many)
click to toggle source
# File lib/conscriptor/event_counter.rb, line 23 def record_many(event, how_many) @counts[event] ||= 0 @counts[event] += how_many end
to_h()
click to toggle source
# File lib/conscriptor/event_counter.rb, line 84 def to_h @counts end
to_s()
click to toggle source
# File lib/conscriptor/event_counter.rb, line 57 def to_s @counts.map { |k, v| "#{k} = #{v}" }.sort.join(', ') end