Class: ElectricSlide

Inherits:
Object
  • 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_nameObject



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