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