# File lib/fog/rackspace/models/queues/claim.rb, line 96 def initialize(new_attributes = {}) # A hack in support of the #messages= hack up above. #messages= requires #collection to # be populated first to succeed, which is always the case in modern Rubies that preserve # Hash ordering, but not in 1.8.7. @collection = new_attributes.delete(:collection) super(new_attributes) end
Destroys Claim
@return [Boolean] returns true if claim is deleted
@raise [Fog::Rackspace::Queues::NotFound] - HTTP 404 @raise [Fog::Rackspace::Queues::BadRequest] - HTTP 400 @raise [Fog::Rackspace::Queues::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::Queues::ServiceError] @see docs.rackspace.com/queues/api/v1.0/cq-devguide/content/DELETE_deleteClaim__version__queues__queue_name__claims__claimId__claims-operations-dle001.html
# File lib/fog/rackspace/models/queues/claim.rb, line 60 def destroy requires :identity, :queue service.delete_claim(queue.name, identity) #Since Claims aren't a server side collection, we should remove # the claim from the collection. collection.delete(self) true end
# File lib/fog/rackspace/models/queues/claim.rb, line 71 def messages=(messages) #HACK - Models require a collection, but I don't really want to expose # the messages collection to users here. message_collection = Fog::Rackspace::Queues::Messages.new({ :service => service, :queue => queue, :client_id => service.client_id, :echo => true }) attributes[:messages] = messages.map do |message| if message.instance_of? Fog::Rackspace::Queues::Message message.claim_id = self.id message else Fog::Rackspace::Queues::Message.new( message.merge({ :service => service, :collection => message_collection, :claim_id => self.id }.merge(message)) ) end end end
Creates or updates a claim
@return [Boolean] returns true if claim is being created
@raise [Fog::Rackspace::Queues::NotFound] - HTTP 404 @raise [Fog::Rackspace::Queues::BadRequest] - HTTP 400 @raise [Fog::Rackspace::Queues::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::Queues::ServiceError] @see docs.rackspace.com/queues/api/v1.0/cq-devguide/content/POST_claimMessages__version__queues__queue_name__claims_claims-operations-dle001.html @see docs.rackspace.com/queues/api/v1.0/cq-devguide/content/PATCH_updateClaim__version__queues__queue_name__claims__claimId__claims-operations-dle001.html
# File lib/fog/rackspace/models/queues/claim.rb, line 43 def save if identity.nil? create else update end end
# File lib/fog/rackspace/models/queues/claim.rb, line 110 def create requires :queue, :ttl, :grace, :collection options = {} options[:limit] = limit unless limit.nil? response = service.create_claim(queue.identity, ttl, grace, options) if [200, 201].include? response.status self.identity = response.get_header('Location').split('/').last self.messages = response.body #Since Claims aren't a server side collection, we need to # add the claim to the collection collection << self true else false end end
# File lib/fog/rackspace/models/queues/claim.rb, line 106 def queue collection.queue end
# File lib/fog/rackspace/models/queues/claim.rb, line 131 def update requires :identity, :queue, :ttl service.update_claim(queue.identity, identity, ttl) true end