module APN
Constants
- VERSION
Public Class Methods
backend()
click to toggle source
# File lib/apn.rb, line 43 def backend @backend ||= APN::Backend::Simple.new end
backend=(backend)
click to toggle source
# File lib/apn.rb, line 31 def backend=(backend) @backend = case backend when Symbol APN::Backend.const_get(backend.to_s.camelize).new when nil APN::Backend::Simple.new else backend end end
log(level, message = nil)
click to toggle source
Log message to any logger provided by the user (e.g. the Rails logger). Accepts log_level
, message
, since that seems to make the most sense, and just message
, to be compatible with Resque's log method and to enable sending verbose and very_verbose worker messages to e.g. the rails logger.
Perhaps a method definition of +message, level
would make more sense, but that's also the complete opposite of what anyone comming from rails would expect.
# File lib/apn.rb, line 70 def log(level, message = nil) level, message = 'info', level if message.nil? # Handle only one argument if called from Resque, which expects only message return false unless logger && logger.respond_to?(level) logger.send(level, "#{Time.now}: #{message}") end
log_and_die(msg)
click to toggle source
Log the message first, to ensure it reports what went wrong if in daemon mode. Then die, because something went horribly wrong.
# File lib/apn.rb, line 79 def log_and_die(msg) logger.fatal(msg) raise msg end
logger()
click to toggle source
# File lib/apn.rb, line 51 def logger @logger ||= Logger.new(STDOUT) end
logger=(logger)
click to toggle source
# File lib/apn.rb, line 47 def logger=(logger) @logger = logger end
notify_async(token, opts = {})
click to toggle source
# File lib/apn.rb, line 15 def notify_async(token, opts = {}) token = token.to_s.gsub(/\W/, '') backend.notify(token, opts) end
notify_sync(token, opts)
click to toggle source
# File lib/apn.rb, line 20 def notify_sync(token, opts) token = token.to_s.gsub(/\W/, '') msg = APN::Notification.new(token, opts) raise "Invalid notification options (did you provide :alert, :badge, or :sound?): #{opts.inspect}" unless msg.valid? APN.log(:debug, "Sending to token '#{token}' message '#{opts.to_s}'") APN.with_connection do |client| client.push(msg) end end
truncate_alert()
click to toggle source
# File lib/apn.rb, line 55 def truncate_alert @truncate_alert ||= false end
truncate_alert=(truncate)
click to toggle source
# File lib/apn.rb, line 59 def truncate_alert=(truncate) @truncate_alert = truncate end