Sha256: fba08c544845b351f3769296a2485b72d985f691f38484b538cdb28aa714193a

Contents?: true

Size: 1.26 KB

Versions: 69

Compression:

Stored size: 1.26 KB

Contents

require 'fog/model'

module Fog
  module Rackspace
    module Files

      class File < Fog::Model

        identity  :key,             'Key'

        attr_accessor :body
        attribute :content_length,  'Content-Length'
        attribute :content_type,    'Content-Type'
        attribute :etag,            'Etag'
        attribute :last_modified,   'Last-Modified'

        def body
          @body ||= if last_modified
            collection.get(identity).body
          else
            ''
          end
        end

        def directory
          @directory
        end

        def destroy
          requires :directory, :key
          connection.delete_object(directory.name, @key)
          true
        end

        def owner=(new_owner)
          if new_owner
            @owner = {
              :display_name => new_owner['DisplayName'],
              :id           => new_owner['ID']
            }
          end
        end

        def save(options = {})
          requires :body, :directory, :key
          data = connection.put_object(directory.name, @key, @body, options)
          @etag = data.headers['ETag']
          true
        end

        private

        def directory=(new_directory)
          @directory = new_directory
        end

      end

    end
  end
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
fog-0.0.67 lib/fog/rackspace/models/files/file.rb
fog-0.0.66 lib/fog/rackspace/models/files/file.rb
fog-0.0.65 lib/fog/rackspace/models/files/file.rb
fog-0.0.64 lib/fog/rackspace/models/files/file.rb
fog-0.0.63 lib/fog/rackspace/models/files/file.rb
fog-0.0.62 lib/fog/rackspace/models/files/file.rb
fog-0.0.61 lib/fog/rackspace/models/files/file.rb
fog-0.0.60 lib/fog/rackspace/models/files/file.rb
fog-0.0.59 lib/fog/rackspace/models/files/file.rb