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.2.15 lib/fog/rackspace/models/files/file.rb
fog-0.2.14 lib/fog/rackspace/models/files/file.rb
fog-0.2.13 lib/fog/rackspace/models/files/file.rb
fog-0.2.12 lib/fog/rackspace/models/files/file.rb
fog-0.2.11 lib/fog/rackspace/models/files/file.rb
fog-0.2.10 lib/fog/rackspace/models/files/file.rb
fog-0.2.9 lib/fog/rackspace/models/files/file.rb
fog-0.2.8 lib/fog/rackspace/models/files/file.rb
fog-0.2.7 lib/fog/rackspace/models/files/file.rb
fog-0.2.6 lib/fog/rackspace/models/files/file.rb
fog-0.2.5 lib/fog/rackspace/models/files/file.rb
fog-0.2.4 lib/fog/rackspace/models/files/file.rb
fog-0.2.3 lib/fog/rackspace/models/files/file.rb
fog-0.2.2 lib/fog/rackspace/models/files/file.rb
fog-0.2.1 lib/fog/rackspace/models/files/file.rb
fog-0.2.0 lib/fog/rackspace/models/files/file.rb
fog-0.1.10 lib/fog/rackspace/models/files/file.rb
fog-0.1.9 lib/fog/rackspace/models/files/file.rb
fog-0.1.8 lib/fog/rackspace/models/files/file.rb
fog-0.1.7 lib/fog/rackspace/models/files/file.rb