Module: AppleShove

Defined in:
lib/apple_shove/config.rb,
lib/apple_shove/logger.rb,
lib/apple_shove/version.rb,
lib/apple_shove/apple_shove.rb,
lib/apple_shove/notification.rb,
lib/apple_shove/demultiplexer.rb,
lib/apple_shove/openssl_helper.rb,
lib/apple_shove/apns/connection.rb,
lib/apple_shove/notification_queue.rb,
lib/apple_shove/apns/notify_connection.rb,
lib/apple_shove/apns/feedback_connection.rb,
lib/apple_shove/apns/error_response_packet.rb,
lib/apple_shove/apns/write_exception_handler.rb

Defined Under Namespace

Modules: APNS Classes: Demultiplexer, Logger, Notification, NotificationQueue, OpenSSLHelper

Constant Summary collapse

CONFIG =
{ 
  :redis_key        => 'apple_shove',
  :reconnect_timer  => 5              # timeout in minutes to re-establish APNS connection  
}
VERSION =
"2.0.4"

Class Method Summary collapse

Class Method Details

.feedback_tokens(p12, sandbox = false) ⇒ Object



12
13
14
15
16
# File 'lib/apple_shove/apple_shove.rb', line 12

def self.feedback_tokens(p12, sandbox = false)
  conn = APNS::FeedbackConnection.new p12, sandbox

  conn.device_tokens
end

.notify(params = {}) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/apple_shove/apple_shove.rb', line 3

def self.notify(params = {})
  notification = Notification.new params

  queue = NotificationQueue.new(CONFIG[:redis_key])
  queue.add(notification)

  true
end

.statsObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/apple_shove/apple_shove.rb', line 18

def self.stats
  redis = ::Redis.new
  queue = NotificationQueue.new(CONFIG[:redis_key], redis)

  size = queue.size

  redis.quit
  
  "queue size:\t#{size}"
end

.try_p12(p12) ⇒ Object

raises an exception if the p12 string is invalid



30
31
32
33
# File 'lib/apple_shove/apple_shove.rb', line 30

def self.try_p12(p12)
  OpenSSLHelper.pkcs12_from_pem(p12)
  true
end