Class: Qs::Daemon::Configuration

Inherits:
Object
  • Object
show all
Includes:
NsOptions::Proxy
Defined in:
lib/qs/daemon.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values = nil) ⇒ Configuration

Returns a new instance of Configuration.



260
261
262
263
264
265
266
267
# File 'lib/qs/daemon.rb', line 260

def initialize(values = nil)
  super(values)
  @init_procs, @error_procs = [], []
  @worker_class  = DefaultWorker
  @worker_params = nil
  @queues = []
  @valid = nil
end

Instance Attribute Details

#error_procsObject

Returns the value of attribute error_procs.



256
257
258
# File 'lib/qs/daemon.rb', line 256

def error_procs
  @error_procs
end

#init_procsObject

Returns the value of attribute init_procs.



256
257
258
# File 'lib/qs/daemon.rb', line 256

def init_procs
  @init_procs
end

#queuesObject

Returns the value of attribute queues.



258
259
260
# File 'lib/qs/daemon.rb', line 258

def queues
  @queues
end

#worker_classObject

Returns the value of attribute worker_class.



257
258
259
# File 'lib/qs/daemon.rb', line 257

def worker_class
  @worker_class
end

#worker_paramsObject

Returns the value of attribute worker_params.



257
258
259
# File 'lib/qs/daemon.rb', line 257

def worker_params
  @worker_params
end

Instance Method Details

#routesObject



269
270
271
# File 'lib/qs/daemon.rb', line 269

def routes
  @queues.map(&:routes).flatten
end

#to_hashObject



273
274
275
276
277
278
279
280
281
# File 'lib/qs/daemon.rb', line 273

def to_hash
  super.merge({
    :error_procs      => self.error_procs,
    :worker_class     => self.worker_class,
    :worker_params    => self.worker_params,
    :routes           => self.routes,
    :queue_redis_keys => self.queues.map(&:redis_key)
  })
end

#valid?Boolean

Returns:

  • (Boolean)


283
284
285
# File 'lib/qs/daemon.rb', line 283

def valid?
  !!@valid
end

#validate!Object



287
288
289
290
291
292
293
294
295
296
297
298
# File 'lib/qs/daemon.rb', line 287

def validate!
  return @valid if !@valid.nil?
  self.init_procs.each(&:call)
  if self.queues.empty? || !self.required_set?
    raise InvalidError, "a name and queue must be configured"
  end
  if !self.worker_class.kind_of?(Class) || !self.worker_class.include?(Qs::Worker)
    raise InvalidError, "worker class must include `#{Qs::Worker}`"
  end
  self.routes.each(&:validate!)
  @valid = true
end