class Crusade::APNS::PushNotification

Attributes

configuration[RW]
connection[W]
encoder[RW]

Public Class Methods

new(configuration, connection = nil) click to toggle source
# File lib/crusade/apns/push_notification.rb, line 11
def initialize(configuration, connection = nil)
  self.configuration = configuration
  self.encoder = NotificationEncoder.new(configuration)
  self.connection = connection
end

Public Instance Methods

send(notification) click to toggle source
# File lib/crusade/apns/push_notification.rb, line 17
def send notification
  return :invalid unless Array(notification.url_args).count == url_args_in_configuration
  
  info "sending notification #{notification.inspect}"
  connection.send encoder.encode notification
end

Private Instance Methods

connection() click to toggle source
# File lib/crusade/apns/push_notification.rb, line 29
def connection
  @connection ||= Crusade::APNS::SocketConnection.new(configuration)
end
url_args_in_configuration() click to toggle source
# File lib/crusade/apns/push_notification.rb, line 33
def url_args_in_configuration
  configuration.url_format.scan("%@").count
end