Method: SimpleQS::Queue.create

Defined in:
lib/simple_qs/queue.rb

.create(name, default_visibility_timeout = nil, &block) ⇒ Object

Create new queue Parameters:

  name - String, name of queue. Should be not longer than 80 chars and contain only a-zA-Z0-9\-\_
  default_visibility_timeout - Fixnum, visibility timeout [Optional]. In range 0 to MAX_VISIBILITY_TIMEOUT.
                               If nil, then default is used (30 seconds).
  &block - if given, then newly created queue object passed to it
Returns:
  SimpleQS::Queue
Raises:
  ArgumentError
  SimpleQS::Queue::MaxVisibilityError
  SimpleQS::Responce::Error


211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
# File 'lib/simple_qs/queue.rb', line 211

def create(name, default_visibility_timeout = nil, &block)
  
  check_queue_name(name)
  check_visibility_timeout(default_visibility_timeout)
  
  params = {
    'Action'    => 'CreateQueue',
    'QueueName' => name
  }
  params['DefaultVisibilityTimeout'] = default_visibility_timeout if default_visibility_timeout
  
  request = SimpleQS::Request.build(:get, params)
  responce = request.perform
  if responce.successful?
    queue = new(responce.queue_url)
    yield queue if block_given?
    queue
  else
    raise responce.to_error
  end
end