class Backup::Notifier::Pushover

Attributes

device[RW]

The user's device identifier to sent the message directly to, rather than all of the user's devices

priority[RW]

The priority of the notification

title[RW]

The message title

token[RW]

The API Application Token

user[RW]

The API User Token

Public Class Methods

new(model, &block) click to toggle source
Calls superclass method Backup::Notifier::Base::new
# File lib/backup/notifier/pushover.rb, line 29
def initialize(model, &block)
  super
  instance_eval(&block) if block_given?
end

Private Instance Methods

notify!(status) click to toggle source

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`.

# File lib/backup/notifier/pushover.rb, line 53
def notify!(status)
  send_message(message.call(model, :status => status_data_for(status)))
end
send_message(message) click to toggle source
# File lib/backup/notifier/pushover.rb, line 57
def send_message(message)
  uri = 'https://api.pushover.net/1/messages.json'
  data = { :user => user, :token => token, :message => message }
  [:device, :title, :priority].each do |param|
    val = send(param)
    data.merge!(param => val) if val
  end
  options = {
    :headers  => { 'Content-Type' => 'application/x-www-form-urlencoded' },
    :body     => URI.encode_www_form(data)
  }
  options.merge!(:expects => 200) # raise error if unsuccessful
  Excon.post(uri, options)
end