Class: WAZ::Queues::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/waz/queues/queue.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Queue

Returns a new instance of Queue.



34
35
36
37
38
39
# File 'lib/waz/queues/queue.rb', line 34

def initialize(options = {})
  raise WAZ::Queues::InvalidOption, :name unless options.keys.include?(:name)
  raise WAZ::Queues::InvalidOption, :url unless options.keys.include?(:url)
  self.name = options[:name]
  self.url = options[:url]
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



32
33
34
# File 'lib/waz/queues/queue.rb', line 32

def name
  @name
end

#urlObject

Returns the value of attribute url.



32
33
34
# File 'lib/waz/queues/queue.rb', line 32

def url
  @url
end

Class Method Details

.create(queue_name, metadata = {}) ⇒ Object



11
12
13
14
# File 'lib/waz/queues/queue.rb', line 11

def create(queue_name,  = {})
  service_instance.create_queue(queue_name, )
  WAZ::Queues::Queue.new({:name => queue_name, :url => service_instance.generate_request_uri(nil, queue_name)})
end

.find(queue_name) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/waz/queues/queue.rb', line 16

def find(queue_name)
  begin 
    service_instance.(queue_name)
    WAZ::Queues::Queue.new({:name => queue_name, :url => service_instance.generate_request_uri(nil, queue_name)})
  rescue RestClient::ResourceNotFound
    return nil
  end
end

.listObject



5
6
7
8
9
# File 'lib/waz/queues/queue.rb', line 5

def list
  service_instance.list_queues.map do |queue|
    WAZ::Queues::Queue.new(queue)
  end
end

Instance Method Details

#clearObject



85
86
87
# File 'lib/waz/queues/queue.rb', line 85

def clear
  service_instance.clear_queue(self.name)
end

#destroy!Object



41
42
43
# File 'lib/waz/queues/queue.rb', line 41

def destroy!
  service_instance.delete_queue(self.name)
end

#enqueue!(message, ttl = 604800) ⇒ Object



56
57
58
# File 'lib/waz/queues/queue.rb', line 56

def enqueue!(message, ttl = 604800)
  service_instance.enqueue(self.name, message, ttl)
end

#lock(num_of_messages = 1, visibility_timeout = nil) ⇒ Object



64
65
66
67
68
69
70
71
72
73
# File 'lib/waz/queues/queue.rb', line 64

def lock(num_of_messages = 1, visibility_timeout = nil)
  options = {}
  options[:num_of_messages] = num_of_messages
  options[:visiblity_timeout] = visibility_timeout unless visibility_timeout.nil?
  messages = service_instance.get_messages(self.name, options).map do |raw_message|
              WAZ::Queues::Message.new(raw_message.merge(:queue_name => self.name))
            end
  return messages.first() if num_of_messages == 1
  return messages
end

#metadataObject



45
46
47
# File 'lib/waz/queues/queue.rb', line 45

def 
  service_instance.(self.name)
end

#peek(num_of_messages = 1) ⇒ Object



75
76
77
78
79
80
81
82
83
# File 'lib/waz/queues/queue.rb', line 75

def peek(num_of_messages = 1)
  options = {}
  options[:num_of_messages] = num_of_messages
  messages = service_instance.peek(self.name, options).map do |raw_message|
              WAZ::Queues::Message.new(raw_message.merge(:queue_name => self.name))
            end
  return messages.first() if num_of_messages == 1
  return messages
end

#put_properties!(new_metadata = {}, overwrite = false) ⇒ Object

when overwrite passed different than true it overrides the metadata for the queue



51
52
53
54
# File 'lib/waz/queues/queue.rb', line 51

def put_properties!( = {}, overwrite = false)
  .merge!(.reject { |k, v| !k.to_s.start_with? "x_ms_meta"} ) unless overwrite
  service_instance.()
end

#sizeObject



60
61
62
# File 'lib/waz/queues/queue.rb', line 60

def size
  [:x_ms_approximate_messages_count].to_i
end