Sha256: af007e0d158b596fb5a5482d0a54af4a06da47e276b3d57bfce115464e8626fe

Contents?: true

Size: 1.24 KB

Versions: 9

Compression:

Stored size: 1.24 KB

Contents

module Fog
  module Rackspace
    class Files

      class File < Fog::Model

        identity  :key,             'Key'

        attribute :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

9 entries across 9 versions & 1 rubygems

Version Path
fog-0.0.55 lib/fog/rackspace/models/files/file.rb
fog-0.0.54 lib/fog/rackspace/models/files/file.rb
fog-0.0.53 lib/fog/rackspace/models/files/file.rb
fog-0.0.52 lib/fog/rackspace/models/files/file.rb
fog-0.0.51 lib/fog/rackspace/models/files/file.rb
fog-0.0.50 lib/fog/rackspace/models/files/file.rb
fog-0.0.49 lib/fog/rackspace/models/files/file.rb
fog-0.0.48 lib/fog/rackspace/models/files/file.rb
fog-0.0.47 lib/fog/rackspace/models/files/file.rb