Sha256: 1c1ba01e4192043ad90f30c715c111786541b45945ce40df264e79caf36cd44c

Contents?: true

Size: 790 Bytes

Versions: 1

Compression:

Stored size: 790 Bytes

Contents

require 'httparty'
require 'json'

module Messenger

  class Campfire

    def self.send(url, body, options={})
      begin
        api_key, room, subdomain = url.match(/^campfire:\/\/([^:]+):([^@]+)@([^\.]+)/)[1,3]
      rescue
        raise URLError, "The URL provided is invalid"
      end
      response = HTTParty.post(
        "http://#{subdomain}.campfirenow.com/room/#{room}/speak.json",
        :basic_auth => { :username => api_key, :password => "x" },
        :headers => { "Content-Type" => "application/json" },
        :body => { "message" => { "body" => body } }.to_json
      )
      [success?(response), response]
    end


  private

    def self.success?(response)
      case response.code
      when 200, 201: true
      else
        false
      end
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
messenger-0.0.1 lib/messenger/campfire.rb