sul-dlss/moab-versioning

View on GitHub
lib/moab.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

# Moab is a module that provides a distintive namespace for the collection of classes it contains.
#
# ====Data Model
#
# * <b>{FileInventory} = container for recording information about a collection of related files</b>
#   * {FileGroup} [1..*] = subset allow segregation of content and metadata files
#     * {FileManifestation} [1..*] = snapshot of a file's filesystem characteristics
#       * {FileSignature} [1] = file fixity information
#       * {FileInstance} [1..*] = filepath and timestamp of any physical file having that signature
#
# * <b>{SignatureCatalog} = lookup table containing a cumulative collection of all files ever ingested</b>
#   * {SignatureCatalogEntry} [1..*] = an row in the lookup table containing storage information about a single file
#     * {FileSignature} [1] = file fixity information
#
# * <b>{FileInventoryDifference} = compares two {FileInventory} instances based on file signatures and pathnames</b>
#   * {FileGroupDifference} [1..*] = performs analysis and reports differences between two matching {FileGroup} objects
#     * {FileGroupDifferenceSubset} [1..5] = collects a set of file-level differences of a give change type
#       * {FileInstanceDifference} [1..*] = contains difference information at the file level
#         * {FileSignature} [1..2] = contains the file signature(s) of two file instances being compared
#
# * <b>{StorageObject} = represents a digital object's repository storage location and ingest/dissemination methods</b>
#   * {StorageObjectVersion} [1..*] = represents a version subdirectory within an object's home directory
#     * {Bagger} [1] = utility for creating bagit packages for ingest or dissemination
#
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
#   All rights reserved.  See {file:LICENSE.rdoc} for details.
module Moab
  DEFAULT_CHECKSUM_TYPES = %i[md5 sha1 sha256].freeze
end

require 'serializer'
require 'moab/config'
require 'moab/utc_time'
require 'moab/file_signature'
require 'moab/file_instance'
require 'moab/file_manifestation'
require 'moab/file_group'
require 'moab/file_inventory'
require 'moab/signature_catalog_entry'
require 'moab/signature_catalog'
require 'moab/file_instance_difference'
require 'moab/file_group_difference_subset'
require 'moab/file_group_difference'
require 'moab/file_inventory_difference'
require 'moab/bagger'
require 'moab/storage_object'
require 'moab/storage_object_version'
require 'moab/storage_repository'
require 'moab/storage_services'
require 'moab/exceptions'
require 'moab/verification_result'
require 'moab/storage_object_validator'