= Library of Congress MODS in Ruby
image:https://img.shields.io/gem/v/loc_mods.svg["Gem Version", link="https://rubygems.org/gems/loc_mods"] image:https://github.com/relaton/loc_mods/workflows/rake/badge.svg["Build Status", link="https://github.com/relaton/loc_mods/actions?workflow=rake"] image:https://codeclimate.com/github/relaton/loc_mods/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/relaton/loc_mods"]
== Purpose
This is a class-oriented Ruby library that parses LOC's MOD data.
This gem is developed using the MODS 3.7 XSD schema.
== Usage
=== Ruby API
require 'loc_mods'
<modsCollection>
LocMods::Collection.from_xml(File.read("spec/fixtures/record_1.xml"))
=== Command line interface
LocMods provides a command-line interface (CLI) for various operations. The main
executable is loc-mods
.
==== Detect duplicates
The detect-duplicates
command allows you to find duplicate MODS records based
on using a "primary ID" that is their DOI (Digital Object Identifier).
Usage:
Options:
-r, --recursive
: Search for MODS files recursively in subdirectories.-v, --verbose
: Display more detailed output.-o, --output FILE
: Write the results to a file instead of stdout.Example:
This command will:
. Search for MODS XML files in the specified directory (and subdirectories if -r
is used).
. Parse each MODS file and extract the DOI.
. Group records with the same DOI.
. For each group of duplicates:
.. Display the shared DOI.
.. List the filenames of the duplicate records.
.. Show a detailed comparison of the differences between the records.
The output will highlight differences, removed elements, and missing elements between the duplicate records, helping you identify discrepancies in the metadata.
== Testing
== License
Copyright Ribose.