class Grocer::SafariNotification

Public: A specialized form of a Grocer::Notification for sending Safari push notifications

Examples

Grocer::SafariNotification.new(
  device_token: '...',
  title: '...',
  body: '...',
  action: '...',
  url_args: ['...']
)

#=>
{
  "aps": {
    "alert": {
      "title": "...",
      "body": "...",
      "action": "..."
    },
    "url-args": ["..."]
  }
}

Public Class Methods

new(payload = {}) click to toggle source
Calls superclass method Grocer::Notification::new
# File lib/grocer/safari_notification.rb, line 30
def initialize(payload = {})
  self.alert = {}
  super(payload)
end

Public Instance Methods

action() click to toggle source
# File lib/grocer/safari_notification.rb, line 53
def action
  alert[:action]
end
action=(action) click to toggle source
# File lib/grocer/safari_notification.rb, line 57
def action=(action)
  alert[:action] = action
  @encoded_payload = nil
end
body() click to toggle source
# File lib/grocer/safari_notification.rb, line 44
def body
  alert[:body]
end
body=(body) click to toggle source
# File lib/grocer/safari_notification.rb, line 48
def body=(body)
  alert[:body] = body
  @encoded_payload = nil
end
title() click to toggle source
# File lib/grocer/safari_notification.rb, line 35
def title
  alert[:title]
end
title=(title) click to toggle source
# File lib/grocer/safari_notification.rb, line 39
def title=(title)
  alert[:title] = title
  @encoded_payload = nil
end
url_args() click to toggle source
# File lib/grocer/safari_notification.rb, line 62
def url_args
  Array(@url_args)
end
url_args=(args) click to toggle source
# File lib/grocer/safari_notification.rb, line 66
def url_args=(args)
  @url_args = args.dup
  @encoded_payload = nil
end

Private Instance Methods

payload_hash() click to toggle source
# File lib/grocer/safari_notification.rb, line 79
def payload_hash
  aps_hash = { alert: alert }
  aps_hash[:'url-args'] = url_args
  { aps: aps_hash }
end
validate_payload() click to toggle source
Calls superclass method Grocer::Notification#validate_payload
# File lib/grocer/safari_notification.rb, line 73
def validate_payload
  fail ArgumentError.new('missing title') unless title
  fail ArgumentError.new('missing body') unless body
  super
end