module Rpush

Constants

CONFIG_ATTRS
CURRENT_ATTRS
DEPRECATED_ATTRS

Attributes

config[W]
logger[W]
reflection_stack[R]

Public Class Methods

apns_feedback() click to toggle source
# File lib/rpush/apns_feedback.rb, line 2
def self.apns_feedback
  require 'rpush/daemon'
  Rpush::Daemon.common_init

  Rpush::Apns::App.all.each do |app|
    # Redis stores every App type on the same namespace, hence the
    # additional filtering
    next unless app.service_name == 'apns'

    receiver = Rpush::Daemon::Apns::FeedbackReceiver.new(app)
    receiver.check_for_feedback
  end

  nil
end
config() click to toggle source
# File lib/rpush/configuration.rb, line 8
def config
  @config ||= Rpush::Configuration.new
end
configure() { |config| ... } click to toggle source
# File lib/rpush/configuration.rb, line 12
def configure
  return unless block_given?
  yield config
  config.initialize_client
end
debug() click to toggle source
# File lib/rpush/embed.rb, line 38
def self.debug
  status
end
embed() click to toggle source
# File lib/rpush/embed.rb, line 2
def self.embed
  require 'rpush/daemon'

  if @embed_thread
    STDERR.puts 'Rpush.embed can only be run once inside this process.'
  end

  Rpush.config.embedded = true
  Rpush.config.foreground = true
  Kernel.at_exit { shutdown }
  @embed_thread = Thread.new { Rpush::Daemon.start }
end
jruby?() click to toggle source
# File lib/rpush.rb, line 25
def self.jruby?
  defined? JRUBY_VERSION
end
logger() click to toggle source
# File lib/rpush.rb, line 29
def self.logger
  @logger ||= Logger.new
end
plugin(name) click to toggle source
# File lib/rpush/plugin.rb, line 2
def self.plugin(name)
  plugins[name] ||= Rpush::Plugin.new(name)
  plugins[name]
end
plugins() click to toggle source
# File lib/rpush/plugin.rb, line 7
def self.plugins
  @plugins ||= {}
end
push() click to toggle source
# File lib/rpush/push.rb, line 2
def self.push
  require 'rpush/daemon'

  Rpush.config.push = true
  Rpush::Daemon.common_init
  Rpush::Daemon::Synchronizer.sync
  Rpush::Daemon::Feeder.start(true) # non-blocking
  Rpush::Daemon::AppRunner.stop
end
reflect() { |reflection_stack| ... } click to toggle source
# File lib/rpush/reflection_public_methods.rb, line 8
def self.reflect
  yield reflection_stack[0] if block_given?
end
root() click to toggle source
# File lib/rpush.rb, line 33
def self.root
  require 'rails'
  Rails.root || Dir.pwd
rescue LoadError
  Dir.pwd
end
shutdown() click to toggle source
# File lib/rpush/embed.rb, line 15
def self.shutdown
  return unless Rpush.config.embedded
  Rpush::Daemon.shutdown
  @embed_thread.join if @embed_thread
rescue StandardError => e
  STDERR.puts(e.message)
  STDERR.puts(e.backtrace.join("\n"))
ensure
  @embed_thread = nil
end
status() click to toggle source
# File lib/rpush/embed.rb, line 31
def self.status
  return unless Rpush.config.embedded
  status = Rpush::Daemon::AppRunner.status
  Rpush.logger.info(JSON.pretty_generate(status))
  status
end
sync() click to toggle source
# File lib/rpush/embed.rb, line 26
def self.sync
  return unless Rpush.config.embedded
  Rpush::Daemon::Synchronizer.sync
end