Class: DaemonicThreads::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-daemonic-threads/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ Config

Returns a new instance of Config.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/ruby-daemonic-threads/config.rb', line 18

def initialize(filename)
  @daemons = YAML::load(ERB.new(IO.read(filename)).result).reject do |name, config|
    config["environment"] && !(config["environment"].split(/ *, */).include?(Rails.env))
  end
  
  @queues = @daemons.delete("queues") || {}
  
  daemons_use_queues.each do |name|
    @queues[name] ||= {}
  end
  
  @queues.each do |name, config|
    config = @queues[name] = {} unless config

    if config["class"].nil? || config["class"].empty?
      config["class-constantized"] = PersistentQueue
    else
      config["class-constantized"] = config["class"].constantize
    end
  end
  
  @daemons.each do |name, config|
    raise "Class name for daemon `#{name}' must be specified" if config["class"].nil? || config["class"].empty?
     
    config["class-constantized"] = config["class"].constantize
  end
  
  Rails.logger.debug {"#{self.class}#initialize -- Configuration: #{self.inspect}"}
end

Instance Attribute Details

#daemonsObject (readonly)

Returns the value of attribute daemons.



48
49
50
# File 'lib/ruby-daemonic-threads/config.rb', line 48

def daemons
  @daemons
end

#queuesObject (readonly)

Returns the value of attribute queues.



48
49
50
# File 'lib/ruby-daemonic-threads/config.rb', line 48

def queues
  @queues
end