Class: ElectricSlide
- Inherits:
-
Object
show all
- Defined in:
- lib/electric_slide/agent.rb,
lib/electric_slide/plugin.rb,
lib/electric_slide/version.rb,
lib/electric_slide/call_queue.rb,
lib/electric_slide/agent_strategy/longest_idle.rb,
lib/electric_slide/agent_strategy/fixed_priority.rb,
lib/electric_slide.rb
Defined Under Namespace
Classes: Agent, AgentStrategy, CallQueue, Plugin, Supervisor
Constant Summary
collapse
- VERSION =
'0.5.1'
Class Method Summary
collapse
Class Method Details
.create(name, queue_class = nil, *args) ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'lib/electric_slide.rb', line 46
def self.create(name, queue_class = nil, *args)
fail "Queue with name #{name} already exists!" if get_queue(name)
queue_class ||= CallQueue
if !queue_class.respond_to?(:valid_with?) || queue_class.valid_with?(*args)
@supervisor.supervise_as name, (queue_class || CallQueue), *args
get_queue name
end
end
|
.get_queue(name) ⇒ Object
60
61
62
|
# File 'lib/electric_slide.rb', line 60
def self.get_queue(name)
@supervisor[name]
end
|
.get_queue!(name) ⇒ Object
56
57
58
|
# File 'lib/electric_slide.rb', line 56
def self.get_queue!(name)
get_queue(name) || fail("Queue #{name} not found!")
end
|
.queues_by_name ⇒ Object
39
40
41
42
43
44
|
# File 'lib/electric_slide.rb', line 39
def self.queues_by_name
@supervisor.names.inject({}) do |queues, name|
queues[name] = get_queue(name)
queues
end
end
|
.shutdown_queue(name) ⇒ Object
64
65
66
67
|
# File 'lib/electric_slide.rb', line 64
def self.shutdown_queue(name)
queue = get_queue name
queue.terminate if queue
end
|