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.87 lib/fog/rackspace/models/files/file.rb
fog-0.0.86 lib/fog/rackspace/models/files/file.rb
fog-0.0.85 lib/fog/rackspace/models/files/file.rb
fog-0.0.84 lib/fog/rackspace/models/files/file.rb
fog-0.0.83 lib/fog/rackspace/models/files/file.rb
fog-0.0.82 lib/fog/rackspace/models/files/file.rb
fog-0.0.81 lib/fog/rackspace/models/files/file.rb
fog-0.0.80 lib/fog/rackspace/models/files/file.rb
fog-0.0.79 lib/fog/rackspace/models/files/file.rb
fog-0.0.78 lib/fog/rackspace/models/files/file.rb
fog-0.0.77 lib/fog/rackspace/models/files/file.rb
fog-0.0.76 lib/fog/rackspace/models/files/file.rb
fog-0.0.75 lib/fog/rackspace/models/files/file.rb
fog-0.0.74 lib/fog/rackspace/models/files/file.rb
fog-0.0.73 lib/fog/rackspace/models/files/file.rb
fog-0.0.72 lib/fog/rackspace/models/files/file.rb
fog-0.0.71 lib/fog/rackspace/models/files/file.rb
fog-0.0.70 lib/fog/rackspace/models/files/file.rb
fog-0.0.69 lib/fog/rackspace/models/files/file.rb
fog-0.0.68 lib/fog/rackspace/models/files/file.rb