class Pingdom::Summary::Average

summary.average includeuptime probes=34,35 byprobe { “responsetime”=>{

  "from"=>0, "to"=>1298110456, "probes"=>"34, 35", "avgresponse"=>[
    {"probeid"=>35, "avgresponse"=>94},
    {"probeid"=>34, "avgresponse"=>125} ]},
"status"=>{"totalup"=>5035757, "totalunknown"=>1293069551, "totaldown"=>5078}}

Public Class Methods

parse(client, response) click to toggle source
Calls superclass method Pingdom::Base::parse
# File lib/pingdom/summary/average.rb, line 10
def self.parse(client, response)
  body = super["summary"]
  sum = body["responsetime"]
  attrs = sum.slice("from", "to")
  attrs["probes"] = (attrs["probes"] || "").gsub(/\w+/, "").split(",").map(&:to_i)

  sum["status"] = Status.new(client, response, body["status"]) if body.key?("status")

  case sum["avgresponse"]
  when Array
    sum["responsetime"] = 0
    sum["averages"] = sum.delete("avgresponse").map do |avg|
      sum["responsetime"] += avg["avgresponse"]
      new(client, response, avg)
    end
    sum["responsetime"] = sum["responsetime"] / sum["averages"].size if !sum["averages"].size.empty?

  when Integer
    sum["responsetime"] = sum.delete("avgresponse")
  end

  sum = Summary.new(client, response, sum)
end

Public Instance Methods

probe() click to toggle source
# File lib/pingdom/summary/average.rb, line 37
def probe
  @client.probes.detect { |probe| probe.id == probe_id }
end