Class: CloudQueues::Messages

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/cloud-queues/messages.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue, msgs, links) ⇒ Messages

Returns a new instance of Messages.



9
10
11
12
13
14
# File 'lib/cloud-queues/messages.rb', line 9

def initialize(queue, msgs, links)
  @queue = queue
  @messages = msgs

  @marker = find_marker links if links
end

Instance Attribute Details

#markerObject (readonly)

Returns the value of attribute marker.



7
8
9
# File 'lib/cloud-queues/messages.rb', line 7

def marker
  @marker
end

#queueObject

Returns the value of attribute queue.



5
6
7
# File 'lib/cloud-queues/messages.rb', line 5

def queue
  @queue
end

Instance Method Details

#[](index) ⇒ Object



20
21
22
# File 'lib/cloud-queues/messages.rb', line 20

def [](index)
  @messages[index]
end

#each(&block) ⇒ Object



16
17
18
# File 'lib/cloud-queues/messages.rb', line 16

def each(&block)
  @messages.each(&block)
end

#next(options = {}) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/cloud-queues/messages.rb', line 24

def next(options = {})
  if @marker
    more = @queue.messages options.merge(marker: @marker)
    if more.class == Array and more.count == 0
      @messages = more
      return self
    end
    return more
  else
    # We don't have a next marker because this set of messages was
    # never intended to be part of a larger set.
    return nil
  end
end