Skip to content
Newspaper Works Admin Gem
Branch: master
Clone or download
seanupton and ebenenglish Edition field refactor, NDNP metadata improvements (#164)
* Module-scoped methods in NewspaperWorks::Ingest for setting
administrative metadata on a work.

* NDNP global ingest options passed to BatchIngester constructor also
passed to all ingester adapter components for all asset types.

* Add NDNPAssetHelper mixin, implements shared method to assign administrative metadata.

* NDNP BatchIngester CLI (rake) support for configurable administrative
metadata arguments (depositor, visibility, admin_set).

* Cascading human-readable title consistency across publication, issue, page.

* Page identifier uses stripped filename to image, without base path or

* Splitting edition field into edition_name and edition_number with new
Latest commit ccffbdc Jun 13, 2019

Newspaper Works for Samvera

Code: Build Status

Docs: Apache 2.0 License Contribution Guidelines

Jump in: Slack Status

Table of Contents


The Newspapers in Samvera is an IMLS grant funded project to develop newspaper specific functionality for the Samvera Hyrax framework.


We are currently working on adding and updating documentation on our Project Wiki


The Newspaper Works gem provides work type models and administrative functionality for Hyrax-based Samvera applications in the space of scanned newspaper media. This gem can be included in a Digital Asset Management application based on Hyrax 2.5

Purpose, Use, and Aims

This gem, while not a stand-alone application, can be integrated into an application based on Hyrax 2.5 easily to support a variety of cases for management, ingest, and archiving of primarily scanned (historic) newspaper archives.

Development Status

This gem is currently under development. The development team is actively working on this project and is updating the codebase nightly. We are targeting an initial 1.0 release for June 2019.

A public testing site is available for those interested in testing out the newspaper_works gem. Newspaper Works Demo Site NOTE: The demo site may not be running the latest release of Newspapers_Works.


Newspaper_works Dependencies

Newspapers PCDM metadata model

This model describes digitized newspaper content modeled using the PCDM ontology, and is intended to inform the development of RDF-based models for all types of newspaper content objects (titles, containers, issues, pages, articles, files), such as would be used in Samvera- or Islandora-based digital asset management applications.

This model was greatly informed by earlier efforts from National Library of Wales and University of Maryland, as well as discussions of the Samvera Newspapers Interest Group. This is essentially an attempt to reconcile these efforts and express them as a formal PCDM profile.

Detailed metadata model documents

Installing, Developing, and Testing

Newspaper_works easily integrates with your Hyrax 2.5 applications.

Extending and Using

  • Add gem 'newspaper_works', :git => '' to your Gemfile.
  • Run bundle install
  • Run rails generate newspaper_works:generate

Ingest, Application Interface

See wiki.

Basic Model Use (console)

More here soon!

Application/Site Specific Configuration

Config changes made by the installer:

  • In app/controllers/catalog_controller.rb, the config.search_builder_class is set to a new CustomSearchBuiler to support newspapers search features
  • Additional facet fields for newspaper metadata are added to app/controllers/catalog_controller.rb
  • Newspaper resource types added to config/authorities/resource_types.yml

(It may be helpful to run git diff after installation to see all the changes made by the installer.)

Config changes you should make after running the installer:

  • In order to use some fields in forms, you will want to make sure you have a username for Geonames, and configure that username in the config.geonames_username value in config/intitializers/hyrax.rb of your app.
    • This will help fields such as "Place of Publication" provide autocomplete using the Geonames service/vocabulary.
  • NewspaperWorks requires that your application's config/initializers/hyrax.rb be edited to make uploads optional for (all) work types, by setting config.work_requires_files = false.
  • NewspaperWorks expects that your application's config/initializers/hyrax.rb be edited to enable a IIIF viewer, by setting config.iiif_image_server = true.
  • NewspaperWorks expects that your application's config/initializers/hyrax.rb be edited to set the FITS path, by setting config.fits_path = /location/of/
  • NewspaperWorks expects that your application's config/environments/production.rb be edited to set file server to public, by setting config.public_file_server.enabled = true
  • NewspaperWorks overrides Hyrax's default :after_create_fileset event handler, in order to attach pre-existing derivatives in some ingest use cases. The file attachment adapters for NewspaperWorks use this callback to allow programmatic assignment of pre-existing derivative files before the primary file's file set has been created for a new work. The callback ensures that derivative files are attached, stored using Hyrax file/path naming conventions, once the file set has been created. Because the Hyrax callback registry only allows single subscribers to any event, application developers who overwrite this handler, or integrate other gems that do likewise, must take care to create a custom composition that ensures all work and queued jobs desired run after this object lifecycle event.

Development and Testing with Vagrant

Additional information regarding development and testing environments setup and configuration can be found here

Host System Requirements (install these before proceeding)

Test Environment Setup (provisioning of virtual machine)

  1. Clone newspaper works samvera-vagrant git clone
  2. Change the directory to the repository cd samvera-vagrant
  3. Provision vagrant box by running vagrant up
  4. Shell into the machine with vagrant ssh or ssh -p 2222 vagrant@localhost

Using/testing the Newspaper_works application with Vagrant

  • Ensure you're in the samvera-vagrant directory
  • Start vagrant box provisioning (incase you have not provisioned the virtual machine)
    • vagrant up
  • Shell into vagrant box three times
    • vagrant ssh
  • First shell (start fcrepo_wrapper)
    • cd /home/ubuntu/newspaper_works fcrepo_wrapper --config config/fcrepo_wrapper_test.yml
  • Second shell (start solr_wrapper)
    • cd /home/ubuntu/newspaper_works solr_wrapper --config config/solr_wrapper_test.yml
  • Third shell testing and development
  • Run spec tests
    • cd /home/ubuntu/newspaper_works rake spec
  • Run rails console
    • cd /home/ubuntu/newspaper_works rails s

Development and testing setup

  • clone newspaper_works:
    • git clone
  • Install Gem and dependencies:
    • bundle install
  • Generate internal testing application
    • rake engine_cart:generate
  • Each in a distinct terminal session, run Solr and Fedora Commons Wrappers:
    • solr_wrapper --config config/solr_wrapper_test.yml
    • fcrepo_wrapper --config config/fcrepo_wrapper_test.yml
  • Now you can either:
    • Run tests via rake spec in the root of the newspaper_works gem.
    • Run an interactive Rails console in the generated testing app:
      • rails
  • For development, you may want to include a clone of newspaper_works in your app's Gemfile, either via github: or by path: in a local Gemfile used only for local development of your app.


Sponsoring Organizations

This gem is part of a project developed in a collaboration between The University of Utah, J. Willard Marriott Library and Boston Public Library, as part of a "Newspapers in Samvera" project grant funded by the Institute for Museum and Library Services.

The development team is grateful for input, collaboration, and support we receive from the Samvera Community, related working groups, and our project's advisory board.

Contributors and Project Team

More Information


Institute of Museum and Library Services Logo

University of Utah Logo

Boston Public Library Logo

You can’t perform that action at this time.