Class: Arsenicum::Configuration::QueueConfiguration

Inherits:
InstanceConfiguration show all
Defined in:
lib/arsenicum/configuration.rb

Instance Attribute Summary collapse

Attributes inherited from InstanceConfiguration

#init_parameters, #klass, #name

Instance Method Summary collapse

Methods inherited from InstanceConfiguration

#init_params, #inside, #type

Methods included from Util

#camelcase, #classify, #constantize, included, #normalize_hash, #underscore

Constructor Details

#initialize(name) ⇒ QueueConfiguration

Returns a new instance of QueueConfiguration.



95
96
97
98
# File 'lib/arsenicum/configuration.rb', line 95

def initialize(name)
  super(name)
  @worker_count = 2
end

Instance Attribute Details

#router_classObject (readonly)

Returns the value of attribute router_class.



92
93
94
# File 'lib/arsenicum/configuration.rb', line 92

def router_class
  @router_class
end

#worker_countObject (readonly)

Returns the value of attribute worker_count.



92
93
94
# File 'lib/arsenicum/configuration.rb', line 92

def worker_count
  @worker_count
end

Instance Method Details

#buildObject



120
121
122
123
124
125
126
# File 'lib/arsenicum/configuration.rb', line 120

def build
  klass.new(name, init_parameters.merge(worker_count: worker_count, router_class: router_class)).tap do |queue|
    task_configurations.each do |task_config|
      queue.register task_config.build
    end
  end
end

#router(name) ⇒ Object



100
101
102
103
104
# File 'lib/arsenicum/configuration.rb', line 100

def router(name)
  @router_class = constantize(classify(name))
rescue NameError
  @router_class = constantize(classify(name), inside: Arsenicum::Routing)
end

#task(name, &block) ⇒ Object



114
115
116
117
118
# File 'lib/arsenicum/configuration.rb', line 114

def task(name, &block)
  task_config = TaskConfiguration.new name
  task_config.instance_eval &block if block_given?
  task_configurations << task_config
end

#task_configurationsObject



110
111
112
# File 'lib/arsenicum/configuration.rb', line 110

def task_configurations
  @task_configurations ||= []
end

#workers(count) ⇒ Object



106
107
108
# File 'lib/arsenicum/configuration.rb', line 106

def workers(count)
  @worker_count = count
end