class ApiBomb::Signaler

Attributes

hold_times[R]
statuses[R]

Public Class Methods

new() click to toggle source
# File lib/api_bomb/signaler.rb, line 4
def initialize
  @statuses = []
  @hold_times = []
end

Public Instance Methods

fighters_lost() click to toggle source
# File lib/api_bomb/signaler.rb, line 14
def fighters_lost
  hold_times.count
end
mean_hold_time() click to toggle source
# File lib/api_bomb/signaler.rb, line 18
def mean_hold_time
  hold_times.mean
end
percentile(value) click to toggle source
# File lib/api_bomb/signaler.rb, line 26
def percentile(value)
  hold_times.percentile(value)
end
report(fighter) click to toggle source
# File lib/api_bomb/signaler.rb, line 9
def report(fighter)
  @statuses << fighter.value.response.status
  @hold_times << fighter.value.hold_time
end
sd_time() click to toggle source
# File lib/api_bomb/signaler.rb, line 22
def sd_time
  hold_times.standard_deviation
end
server_errors() click to toggle source
# File lib/api_bomb/signaler.rb, line 30
def server_errors
  @statuses.select{|s| s >= 500}.count
end
server_status_stats() click to toggle source
# File lib/api_bomb/signaler.rb, line 34
def server_status_stats
  @server_status_stats ||= @statuses.group_by{|status|
    status.to_i.to_s.chop.chop.insert(-1, 'xx')
  }.map{|s| {s.first => s.last.count}}
end