Sha256: db78980a7002c9710445cbfaf5333bf0d63610a3132a81d0e074ffb9f78441cd

Contents?: true

Size: 1.24 KB

Versions: 15

Compression:

Stored size: 1.24 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
          requires :body, :directory, :key
          data = connection.put_object(directory.name, @key, @body)
          @etag = data.headers['ETag']
          true
        end

        private

        def directory=(new_directory)
          @directory = new_directory
        end

      end

    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
fog-0.2.30 lib/fog/rackspace/models/files/file.rb
fog-0.2.28 lib/fog/rackspace/models/files/file.rb
fog-0.2.27 lib/fog/rackspace/models/files/file.rb
fog-0.2.26 lib/fog/rackspace/models/files/file.rb
fog-0.2.25 lib/fog/rackspace/models/files/file.rb
fog-0.2.24 lib/fog/rackspace/models/files/file.rb
tecnh-fog-0.2.23.vpc lib/fog/rackspace/models/files/file.rb
fog-0.2.23 lib/fog/rackspace/models/files/file.rb
fog-0.2.22 lib/fog/rackspace/models/files/file.rb
fog-0.2.21 lib/fog/rackspace/models/files/file.rb
fog-0.2.20 lib/fog/rackspace/models/files/file.rb
fog-0.2.19 lib/fog/rackspace/models/files/file.rb
fog-0.2.18 lib/fog/rackspace/models/files/file.rb
fog-0.2.17 lib/fog/rackspace/models/files/file.rb
fog-0.2.16 lib/fog/rackspace/models/files/file.rb