class HerdstWorker::Application

Attributes

autoload[RW]
config[RW]
logger[RW]
name[RW]
poller_enabled[RW]
poller_url[RW]
queue[RW]
queues[RW]

Public Class Methods

new(env, name, poller_enabled) click to toggle source
# File lib/herdst_worker/application/facade.rb, line 18
def initialize(env, name, poller_enabled)
    self.name = name
    self.poller_enabled = poller_enabled
    self.queues = ActiveSupport::HashWithIndifferentAccess.new
    
    HerdstWorker.set_application(self)
    
    self.logger = HerdstWorker::Log::Facade.new(get_logger_level(env))
    self.config = HerdstWorker::Configuration::Facade.new(env, name)
    self.autoload = HerdstWorker::Autoload::Facade.new(self)
    self.set_inflections
    
    HerdstWorker::Adapters::Facade.bootstrap(self)
end

Public Instance Methods

add_queue(name, url, poller = false) click to toggle source
# File lib/herdst_worker/application/facade.rb, line 41
def add_queue(name, url, poller = false)
    self.queues[name] = url
    self.poller_url = url if poller
end
config_for(name) click to toggle source
# File lib/herdst_worker/application/facade.rb, line 59
def config_for(name)
    self.config.config_for(name)
end
configure() { |self| ... } click to toggle source
# File lib/herdst_worker/application/facade.rb, line 34
def configure(&block)
    yield self
    
    self.autoload.reload
end
run() click to toggle source
# File lib/herdst_worker/application/facade.rb, line 47
def run
    if self.queue == nil
        self.logger.info "Starting Application (#{$$})"
        
        HerdstWorker::Signals::Facade.listen(self.config.paths.temp)
        
        self.queue = HerdstWorker::Queue::Facade.new(self, self.poller_enabled, self.poller_url, 20)
        self.queue.start
    end
end

Private Instance Methods

get_logger_level(env) click to toggle source
# File lib/herdst_worker/application/facade.rb, line 71
def get_logger_level(env)
    return "WARN" if env == "production"
    return "FATAL" if env == "test"
    return "DEBUG"
end
set_inflections() click to toggle source
# File lib/herdst_worker/application/facade.rb, line 65
def set_inflections
    ActiveSupport::Inflector.inflections do |inflect|
        inflect.irregular "meta", "meta"
    end
end