Skip to content

Latest commit

 

History

History
67 lines (50 loc) · 1.94 KB

README.md

File metadata and controls

67 lines (50 loc) · 1.94 KB

Merritt Ingest Gem

Build Status

This microservice is part of the Merritt Preservation System.

Purpose

This library provides utility methods for preparing content for ingest into Merritt.

See https://rubygems.org/gems/mrt-ingest

Used By

This code is used by

Build instructions

$ gem build mrt-ingest.gemspec
$ sudo gem install mrt-ingest-0.0.1.gem

Test instructions

The code below creates a new Merritt object with content consisting of two local files and one remote URL. The object is submitted to Merritt as a manifest, with the manifest, local files, and mrt-erc.txt made available to Ingest by an Mrt::Ingest::OneTimeServer -- a simple WEBrick-based server that finds itself an open port, serves each file from a temporary directory, and when all files have been served, shuts down.

require 'mrt/ingest'

client = Mrt::Ingest::Client.new(
  "http://merritt.cdlib.org/object/ingest",
  USERNAME,
  PASSWORD
)
ingest_profile = "demo_merritt_content"
user_agent = "me/My Name"

obj = Mrt::Ingest::IObject.new(
  erc: {
    "who" => "Doe, John",
    "what" => "Hello, world",
    "when/created" => "2011"
  }
)
obj.add_component(File.new("/tmp/helloworld_a"))
obj.add_component(File.new("/tmp/helloworld_b"))
obj.add_component(
  URI.parse("http://example.org/xxx"),
  name: "helloworld_c",
  digest: Mrt::Ingest::MessageDigest::MD5.new("6f5902ac237024bdd0c176cb93063dc4")
)

obj.start_ingest(client, ingest_profile, user_agent)
obj.finish_ingest # waits for all files to be served, then shuts down

For a more detailed example, see the Merritt::Atom module of the Merritt dashboard.

Internal Links