# ChangeTheSubject This gem is currently used to mask outdated Library of Congress Subject Headings in two different public access catalogs - [Princeton University Library Catalog](https://catalog.princeton.edu/) and [Princeton University Library Finding Aids](https://findingaids.princeton.edu/). The code for this gem started in the [bibdata codebase](https://github.com/pulibrary/bibdata), the application that prepares metadata for use by the Catalog, and you can [see the gem's earlier history there](https://github.com/pulibrary/bibdata/commits/590d2437126150d66e40393724f9e11ba95c3328/marc_to_solr/lib/change_the_subject.rb). ## Installation Add this line to your application's Gemfile: ```ruby gem 'change_the_subject' ``` And then execute: $ bundle install Or install it yourself as: $ gem install change_the_subject ## Usage The main api of the gem is the `ChangeTheSubject.fix` method, which takes an array of subject terms, compares them to the configuration (the default is in `config/change_the_subject.yml`), and replaces the configured terms. You can see how Bibdata uses the gem in its [traject_config.rb](https://github.com/pulibrary/bibdata/blob/main/marc_to_solr/lib/traject_config.rb). ```ruby original_subjects = ["Something problematic", "Something not problematic"] subjects = ChangeTheSubject.fix(subject_terms: original_subjects) # outputs ["Something not problematic from config", "Something not problematic"] ``` The `ChangeTheSubject.fix` method also takes an optional `separators` argument, which you can [see in use in Pulfalight's implementation for eads](https://github.com/pulibrary/pulfalight/blob/main/lib/pulfalight/traject/ead2_config.rb). ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing The configuration for this gem is managed by the Inclusive and Reparative Metadata Working Group (IRMWG). Send questions or comments about the configuration to harmfullanguage@princeton.libanswers.com. Bug reports and pull requests are welcome on GitHub at https://github.com/pulibrary/change_the_subject.