class Pushr::Daemon::App

Attributes

apps[R]

Public Class Methods

load() click to toggle source
# File lib/pushr/daemon/app.rb, line 9
def load
  @apps = Pushr::Configuration.all.keep_if { |c| c.enabled == true }.map { |c| App.new(c) }
end
new(config) click to toggle source
# File lib/pushr/daemon/app.rb, line 26
def initialize(config)
  @config = config
  @handlers = []
  @provider = nil
end
start() click to toggle source
# File lib/pushr/daemon/app.rb, line 17
def start
  @apps.map(&:start)
end
stop() click to toggle source
# File lib/pushr/daemon/app.rb, line 21
def stop
  @apps.map(&:stop)
end
total_connections() click to toggle source
# File lib/pushr/daemon/app.rb, line 13
def total_connections
  @apps.map(&:connections).inject(0, :+)
end

Public Instance Methods

connections() click to toggle source
# File lib/pushr/daemon/app.rb, line 32
def connections
  @config.connections
end
start() click to toggle source
# File lib/pushr/daemon/app.rb, line 36
def start
  @provider = load_provider(@config.name, @config)
  @provider.start
end
stop() click to toggle source
# File lib/pushr/daemon/app.rb, line 41
def stop
  @provider.stop
end

Protected Instance Methods

load_provider(klass, options) click to toggle source
# File lib/pushr/daemon/app.rb, line 47
def load_provider(klass, options)
  begin
    middleware = Pushr::Daemon.const_get("#{klass}".camelize)
  rescue NameError
    message = "Could not find matching push provider for #{klass.inspect}. " \
              "You may need to install an additional gem (such as pushr-#{klass})."
    raise LoadError, message
  end

  middleware.new(options)
end