Class: LSQS::QueueList

Inherits:
Object
  • Object
show all
Includes:
MonitorMixin
Defined in:
lib/lsqs/queue_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeQueueList

Returns a new instance of QueueList.



7
8
9
10
# File 'lib/lsqs/queue_list.rb', line 7

def initialize
  super
  @queues  = {}
end

Instance Attribute Details

#queuesObject

Returns the value of attribute queues.



5
6
7
# File 'lib/lsqs/queue_list.rb', line 5

def queues
  @queues
end

Instance Method Details

#create(name, options = {}) ⇒ LSQS::Queue

Creates a new queue, if it doesn’t exist already.

Parameters:

  • name (String)
  • options (Hash) (defaults to: {})

Returns:



29
30
31
32
33
34
35
# File 'lib/lsqs/queue_list.rb', line 29

def create(name, options = {})
  unless queues[name]
    @queues[name] = Queue.new(name, options)
  else
    raise 'QueueNameExists'
  end
end

#delete(name) ⇒ Object

Deletes a queue if it exists.

Parameters:

  • (name)


73
74
75
76
77
78
79
# File 'lib/lsqs/queue_list.rb', line 73

def delete(name)
  if queues[name]
    queues.delete(name)
  else
    raise 'NonExistentQueue'
  end
end

#find(name) ⇒ Queue

Searches for a queue in the list by name. If it doesn’t find it, it creates it.

Parameters:

  • name (String)

Returns:



60
61
62
63
64
65
66
# File 'lib/lsqs/queue_list.rb', line 60

def find(name)
  if queue = queues[name]
    return queue
  else
    raise 'NonExistentQueue'
  end
end

#inspect(options = {}) ⇒ Array

Returns the names of the existing queues.

Parameters:

  • options (Hash) (defaults to: {})

Returns:

  • (Array)


44
45
46
47
48
49
50
# File 'lib/lsqs/queue_list.rb', line 44

def inspect(options = {})
  if prefix = options['QueueNamePrefix']
    queues.select { |name, queue| name.start_with?(prefix) }.values.map(&:name)
  else
    queues.values.map(&:name)
  end
end

#purgeHash

Purges the current queue list.

Returns:

  • (Hash)


17
18
19
# File 'lib/lsqs/queue_list.rb', line 17

def purge
  @queues = {}
end

#queryObject

Queries the list of queues.



84
85
86
87
88
# File 'lib/lsqs/queue_list.rb', line 84

def query
  synchronize do
    yield
  end
end