Sha256: 45ad5642a93f33a7db40c96bcbeb127cedaccb16373a7f9f81d0e1d34f42afb1

Contents?: true

Size: 920 Bytes

Versions: 1

Compression:

Stored size: 920 Bytes

Contents

require 'blaze/version'
require 'blaze/configuration'
require 'net/http'
require 'json'

module Blaze
  extend self

  def configure
    yield configuration
  end

  def configuration
    @configuration ||= Configuration.new
  end

  def speak(message)
    configuration.validate!
    port = configuration.ssl ? 443 : 80

    req = Net::HTTP::Post.new("/room/#{configuration.room_id}/speak.json")
    req.basic_auth configuration.token, 'X'
    req.body = { :message => { :body => message } }.to_json
    req.content_type = "application/json"
    req["User-Agent"] = "Blaze"

    res = Net::HTTP.start("#{configuration.account}.campfirenow.com", port, :use_ssl => configuration.ssl) do |http|
      http.request(req)
    end

    if res.is_a?(Net::HTTPSuccess)
      warn "Campfire message sent!"
    else
      warn "Campfire communication failed!"
      warn res.inspect
      warn res.body.inspect
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blaze-0.0.1 lib/blaze.rb