Sha256: c31fc13f06d36749328fef906fe440d4450b4d5b65f1a0df2e442606cd4989d9

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

require 'fog/core/model'

module Fog
  module Rackspace
    class Queues
      class Message < Fog::Model

        attribute :age
        attribute :ttl
        attribute :body
        attribute :href
        attribute :claim_id

        def identity
          return nil unless href

          match = href.match(/(\/(\w+))*\??/)
          match ? match[-1] : nil
        end
        alias :id :identity

        def save
          requires :queue, :client_id, :body, :ttl
          raise "Message has already been created and may not be updated." unless identity.nil?
          data = service.create_message(client_id, queue.name, body, ttl).body
          self.href = data['resources'][0]
          true
        end

        def destroy
          requires :identity, :queue
          options = {}
          options[:claim_id] = claim_id unless claim_id.nil?

          service.delete_message(queue.name, identity, options)
          true
        end

        private

        def queue
          collection.queue
        end

        def client_id
          collection.client_id
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fog-maestrodev-1.18.0.20131125111730 lib/fog/rackspace/models/queues/message.rb
fog-maestrodev-1.18.0.20131125083406 lib/fog/rackspace/models/queues/message.rb
fog-maestrodev-1.18.0.20131123105121 lib/fog/rackspace/models/queues/message.rb
fog-maestrodev-1.18.0.20131122203507 lib/fog/rackspace/models/queues/message.rb