Sha256: 0b341958e7b3f81bc6fb7f9de94c164f069850e05010e5b15461cbcc8d83d6cc

Contents?: true

Size: 1.26 KB

Versions: 3

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module Cocina
  module Models
    # attributes common to both File and RequestFile
    # See http://sul-dlss.github.io/cocina-models/maps/File.json
    module FileAttributes
      def self.included(obj)
        obj.attribute(:access, File::Access.optional.default { File::Access.new })
        obj.attribute(:administrative, File::Administrative.default { File::Administrative.new })
        obj.attribute :label, Types::Strict::String
        obj.attribute :filename, Types::String.optional.default(nil)
        obj.attribute :identification, File::Identification.optional.meta(omittable: true)
        obj.attribute :hasMessageDigests, Types::Strict::Array.of(File::Fixity).default([].freeze)
        obj.attribute :hasMimeType, Types::String.optional.meta(omittable: true)
        obj.attribute :presentation, File::Presentation.optional.meta(omittable: true)
        obj.attribute :size, Types::Strict::Integer.optional.default(nil)
        obj.attribute :structural, File::Structural.optional.meta(omittable: true)
        obj.attribute :type, Types::String.enum(*File::TYPES)
        obj.attribute :use, Types::String.enum('transcription').optional.meta(omittable: true)
        obj.attribute :version, Types::Strict::Integer
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cocina-models-0.29.0 lib/cocina/models/file_attributes.rb
cocina-models-0.28.0 lib/cocina/models/file_attributes.rb
cocina-models-0.27.0 lib/cocina/models/file_attributes.rb