class Campfire::Bot

Public Class Methods

new() click to toggle source
# File lib/pagerduty_tools/campfire.rb, line 41
def initialize
  # TODO: make sure that the file is there and that all the keys are, too.
  config = YAML.load_file(File.expand_path(CONFIG_FILE))
  @uri   = URI.parse config["site"]
  @room  = config["room"]
  @token = config["token"]
  @pass  = 'x'

  @http             = Net::HTTP.new(@uri.host, @uri.port)
  @http.use_ssl     = true
  @http.ca_file     = File.expand_path(CA_FILE)
  @http.verify_mode = OpenSSL::SSL::VERIFY_PEER
end

Public Instance Methods

paste(body) click to toggle source
# File lib/pagerduty_tools/campfire.rb, line 65
def paste(body)
  request = Net::HTTP::Post.new("/room/#{@room}/speak.xml")
  message = Nokogiri::XML::Builder.new do |xml|
    xml.message {
      xml.type_ "PasteMessage"
      xml.body body
    }
  end
  return do_request(request, message.to_xml)
end
topic(topic) click to toggle source
# File lib/pagerduty_tools/campfire.rb, line 55
def topic(topic)
  request = Net::HTTP::Put.new "/room/#{@room}.xml"
  message = Nokogiri::XML::Builder.new do |xml|
    xml.room {
      xml.topic topic
    }
  end
  return do_request(request, message.to_xml)
end

Private Instance Methods

do_request(request, message) click to toggle source
# File lib/pagerduty_tools/campfire.rb, line 78
def do_request(request, message)
  @http.start do |connection|
    request['Content-Type'] = 'application/xml'
    request.basic_auth @token, @pass
    return connection.request(request, message)
  end
end