Sha256: 5c1422530f96e4637cd3e6dfa864c3f7121c786b2236bd91ce164ce9c5c47265

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

require 'merritt/manifest/fields'

module Merritt
  class Manifest
    # A marker interface for file-like objects. Each field
    # may or may not be relevant to a given manifest format.
    module File
      # @return [nil, URI] the URL at which to retrieve the file
      attr_reader :file_url

      # @return [nil, String] the hash algorithm used to hash the file
      attr_reader :hash_algorithm

      # @return [nil, String] the hash value
      attr_reader :hash_value

      # @return [nil, Integer] the file size in bytes.
      attr_reader :file_size

      # @return [nil, DateTime] date and time the file was last modified.
      #   Note that according to the [Merritt Ingest Service docs](https://confluence.ucop.edu/download/attachments/16744573/Merritt-ingest-service-latest.pdf),
      #   “modification time field SHOULD NOT be specified, and will be ignored if provided.”
      attr_reader :file_last_modified

      # @return [nil, String] the file name. If not present, will be inferred from
      #   {#file_url}.
      attr_reader :file_name

      # @return [nil, MIME::Type] the mime type
      attr_reader :mime_type
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
merritt-manifest-0.1.3 lib/merritt/manifest/file.rb
merritt-manifest-0.1.2 lib/merritt/manifest/file.rb
merritt-manifest-0.1.1 lib/merritt/manifest/file.rb
merritt-manifest-0.1.0 lib/merritt/manifest/file.rb