Sha256: 7aca09d48443f730554b11f1789bce362d85cc1783437012b2e219ff90a2f0a0
Contents?: true
Size: 1.65 KB
Versions: 30
Compression:
Stored size: 1.65 KB
Contents
# encoding: utf-8 require 'json' module Backup module Notifier class Campfire < Base ## # Campfire api authentication token attr_accessor :api_token ## # Campfire account's subdomain attr_accessor :subdomain ## # Campfire account's room id attr_accessor :room_id def initialize(model, &block) super instance_eval(&block) if block_given? end private ## # Notify the user of the backup operation results. # # `status` indicates one of the following: # # `:success` # : The backup completed successfully. # : Notification will be sent if `on_success` is `true`. # # `:warning` # : The backup completed successfully, but warnings were logged. # : Notification will be sent if `on_warning` or `on_success` is `true`. # # `:failure` # : The backup operation failed. # : Notification will be sent if `on_warning` or `on_success` is `true`. # def notify!(status) send_message(message.call(model, :status => status_data_for(status))) end def send_message(message) uri = "https://#{ subdomain }.campfirenow.com/room/#{ room_id }/speak.json" options = { :headers => { 'Content-Type' => 'application/json' }, :body => JSON.dump( { :message => { :body => message, :type => 'Textmessage' } } ) } options.merge!(:user => api_token, :password => 'x') # Basic Auth options.merge!(:expects => 201) # raise error if unsuccessful Excon.post(uri, options) end end end end
Version data entries
30 entries across 30 versions & 5 rubygems