Sha256: 42efd5bbbed52bc9cbccafd25d37b9c6c7a9a8d3e6447553a3814bbd8c542297

Contents?: true

Size: 975 Bytes

Versions: 9

Compression:

Stored size: 975 Bytes

Contents

module Duracloud
  class ChunkedContent < Content

    def self.find(**kwargs)
      new(**kwargs).tap do |content|
        content.manifest
      end
    end

    def manifest
      if @manifest.nil?
        @manifest = ContentManifest.find(space_id: space_id,
                                         manifest_id: content_id + MANIFEST_EXT,
                                         store_id: store_id)
        load_properties
      end
      @manifest
    end

    def chunked?
      true
    end

    private

    def do_load_properties
      if md5
        if md5 != manifest.source.md5
          raise MessageDigestError, "Expected MD5: {#{md5}}; DuraCloud MD5: {#{manifest.source.md5}}."
        end
      else
        self.md5 = manifest.source.md5
      end
      self.properties = manifest.properties.dup
      self.content_type = manifest.source.content_type
      self.size = manifest.source.size
      self.modified = manifest.content.modified
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
duracloud-client-0.10.2 lib/duracloud/chunked_content.rb
duracloud-client-0.10.1 lib/duracloud/chunked_content.rb
duracloud-client-0.10.0 lib/duracloud/chunked_content.rb
duracloud-client-0.9.1 lib/duracloud/chunked_content.rb
duracloud-client-0.9.0 lib/duracloud/chunked_content.rb
duracloud-client-0.8.0 lib/duracloud/chunked_content.rb
duracloud-client-0.7.2 lib/duracloud/chunked_content.rb
duracloud-client-0.7.1 lib/duracloud/chunked_content.rb
duracloud-client-0.7.0 lib/duracloud/chunked_content.rb