class Pagerduty

Attributes

incident_key[R]
service_key[R]

Public Class Methods

new(service_key) click to toggle source
# File lib/pagerduty.rb, line 17
def initialize(service_key)
  @service_key = service_key
  @incident_key = nil
end

Public Instance Methods

get_incident(incident_key) click to toggle source
# File lib/pagerduty.rb, line 33
def get_incident(incident_key)
  PagerdutyIncident.new @service_key, incident_key
end
incident_key=(incident_key) click to toggle source
# File lib/pagerduty.rb, line 22
def incident_key=(incident_key)
  @incident_key = incident_key
end
trigger(description, details = {}) click to toggle source
# File lib/pagerduty.rb, line 26
def trigger(description, details = {})
  resp = api_call("trigger", description, details)
  throw PagerdutyException.new(self, resp) unless resp["status"] == "success"
  
  PagerdutyIncident.new @service_key, resp["incident_key"]
end

Protected Instance Methods

api_call(event_type, description, details = {}) click to toggle source
# File lib/pagerduty.rb, line 38
def api_call(event_type, description, details = {})
  params = { :event_type => event_type, :service_key => @service_key, :description => description, :details => details }
  params.merge!({ :incident_key => @incident_key }) unless @incident_key == nil
  
  curl = Curl::Easy.new
  curl.url = "http://events.pagerduty.com/generic/2010-04-15/create_event.json"
  curl.http_post JSON.generate(params)
  JSON.parse curl.body_str
end