pennmarc 1.0.10 → 1.0.11.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.gitlab-ci.yml +72 -0
 - data/Gemfile.lock +3 -0
 - data/README.md +17 -19
 - data/lib/pennmarc/enriched_marc.rb +2 -0
 - data/lib/pennmarc/helpers/access.rb +2 -4
 - data/lib/pennmarc/helpers/date.rb +2 -1
 - data/lib/pennmarc/helpers/format.rb +20 -8
 - data/lib/pennmarc/helpers/location.rb +6 -1
 - data/lib/pennmarc/mappings/locations.yml +13 -197
 - data/lib/pennmarc/version.rb +1 -1
 - data/pennmarc.gemspec +1 -1
 - data/spec/lib/pennmarc/helpers/access_spec.rb +2 -2
 - data/spec/lib/pennmarc/helpers/format_spec.rb +25 -5
 - data/spec/lib/pennmarc/helpers/link_spec.rb +4 -4
 - data/spec/lib/pennmarc/helpers/location_spec.rb +12 -0
 - metadata +6 -5
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 102f9a975e2d103cdec48de5ef76c1577216d1055f46893ca39ac40a9fd717aa
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 759fef85e9a2f5cc69bd100cd8552912831c7f70df5066f52824ec51ab483e03
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: e2fbd84b36717b7c24a3966a19912e59be09b258eea4d62f2905ff7f117786f0594a9a9e9a6da031c52e639bad2407efa5feeef65d092e991457a449e8a17259
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 1297a465f711238695f9faace643c20d06f2a07e56ba641c239ee4af71db38c6a1067a073703f0898031cb76bad1c4c8668835d5970ab5f6fc58508af7596105
         
     | 
    
        data/.gitlab-ci.yml
    ADDED
    
    | 
         @@ -0,0 +1,72 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            include:
         
     | 
| 
      
 2 
     | 
    
         
            +
              - project: "devops/gitlab/ci-templates/ruby"
         
     | 
| 
      
 3 
     | 
    
         
            +
                ref: "sans-dind"
         
     | 
| 
      
 4 
     | 
    
         
            +
                file:
         
     | 
| 
      
 5 
     | 
    
         
            +
                  - ".rspec.yml"
         
     | 
| 
      
 6 
     | 
    
         
            +
                  - ".rubocop.yml"
         
     | 
| 
      
 7 
     | 
    
         
            +
              - template: "Workflows/MergeRequest-Pipelines.gitlab-ci.yml"
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            stages:
         
     | 
| 
      
 10 
     | 
    
         
            +
              - test
         
     | 
| 
      
 11 
     | 
    
         
            +
              - deploy
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            rspec_app_test:
         
     | 
| 
      
 14 
     | 
    
         
            +
              stage: test
         
     | 
| 
      
 15 
     | 
    
         
            +
              image: ruby:3.2.2
         
     | 
| 
      
 16 
     | 
    
         
            +
              before_script:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - bundle install -j $(nproc)
         
     | 
| 
      
 18 
     | 
    
         
            +
              extends:
         
     | 
| 
      
 19 
     | 
    
         
            +
                - .rspec
         
     | 
| 
      
 20 
     | 
    
         
            +
              tags:
         
     | 
| 
      
 21 
     | 
    
         
            +
                - build
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            rubocop_app_test:
         
     | 
| 
      
 24 
     | 
    
         
            +
              stage: test
         
     | 
| 
      
 25 
     | 
    
         
            +
              image: ruby:3.2.2
         
     | 
| 
      
 26 
     | 
    
         
            +
              before_script:
         
     | 
| 
      
 27 
     | 
    
         
            +
                - bundle install -j $(nproc)
         
     | 
| 
      
 28 
     | 
    
         
            +
              extends:
         
     | 
| 
      
 29 
     | 
    
         
            +
                - .rubocop
         
     | 
| 
      
 30 
     | 
    
         
            +
              tags:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - build
         
     | 
| 
      
 32 
     | 
    
         
            +
              allow_failure: true
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            # This step was inspired from Gitlab's example of gem publication:
         
     | 
| 
      
 35 
     | 
    
         
            +
            # https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/gem-release.yml
         
     | 
| 
      
 36 
     | 
    
         
            +
            gem_publication:
         
     | 
| 
      
 37 
     | 
    
         
            +
              stage: deploy
         
     | 
| 
      
 38 
     | 
    
         
            +
              image: ruby:3.2.2
         
     | 
| 
      
 39 
     | 
    
         
            +
              variables:
         
     | 
| 
      
 40 
     | 
    
         
            +
                GEMSPEC_FILE: "${CI_PROJECT_NAME}.gemspec"
         
     | 
| 
      
 41 
     | 
    
         
            +
                VAULT_VERSION: "1.10.1"
         
     | 
| 
      
 42 
     | 
    
         
            +
              before_script:
         
     | 
| 
      
 43 
     | 
    
         
            +
                - | 
         
     | 
| 
      
 44 
     | 
    
         
            +
                  apt-get update && apt-get -y install \
         
     | 
| 
      
 45 
     | 
    
         
            +
                  wget \
         
     | 
| 
      
 46 
     | 
    
         
            +
                  unzip && \
         
     | 
| 
      
 47 
     | 
    
         
            +
                  wget https://releases.hashicorp.com/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip -O /tmp/vault_${VAULT_VERSION}.zip && \
         
     | 
| 
      
 48 
     | 
    
         
            +
                  unzip /tmp/vault_${VAULT_VERSION}.zip -d /usr/bin && \
         
     | 
| 
      
 49 
     | 
    
         
            +
                  rm -fr /tmp/vault_${VAULT_VERSION}.zip && \
         
     | 
| 
      
 50 
     | 
    
         
            +
                  apt-get remove -y wget unzip && \
         
     | 
| 
      
 51 
     | 
    
         
            +
                  apt-get clean
         
     | 
| 
      
 52 
     | 
    
         
            +
                - export VAULT_ADDR=${VAULT_URL}
         
     | 
| 
      
 53 
     | 
    
         
            +
                - export VAULT_TOKEN="$(vault write -field=token auth/jwt/${CI_SERVER_HOST}/login role=${JWT_ROLE} jwt=${CI_JOB_JWT})"
         
     | 
| 
      
 54 
     | 
    
         
            +
                - export GEM_HOST_API_KEY="$(vault kv get -field=rubygems_api_key ${VAULT_KV_ENDPOINT}${ENVIRONMENT})"
         
     | 
| 
      
 55 
     | 
    
         
            +
                - |
         
     | 
| 
      
 56 
     | 
    
         
            +
                  gem -v
         
     | 
| 
      
 57 
     | 
    
         
            +
                  rm -f ./*.gem
         
     | 
| 
      
 58 
     | 
    
         
            +
                  [ -f "${GEMSPEC_FILE}" ] || (echo "No ${GEMSPEC_FILE} file found!" && exit 1)
         
     | 
| 
      
 59 
     | 
    
         
            +
                - '[ -n "${GEM_HOST_API_KEY}" ] || (echo "GEM_HOST_API_KEY is not set!" && exit 1)'
         
     | 
| 
      
 60 
     | 
    
         
            +
              script:
         
     | 
| 
      
 61 
     | 
    
         
            +
                - GEM_FILE=$(echo "${CI_PROJECT_NAME}-${CI_COMMIT_TAG:1}.gem")
         
     | 
| 
      
 62 
     | 
    
         
            +
                - |
         
     | 
| 
      
 63 
     | 
    
         
            +
                  gem build "${GEMSPEC_FILE}"
         
     | 
| 
      
 64 
     | 
    
         
            +
                  [ -f "${GEM_FILE}" ] || (echo "No ${GEM_FILE} file found!" && exit 1)
         
     | 
| 
      
 65 
     | 
    
         
            +
                - '[ "${DISABLE_GEM_PUSH}" == "true" ] || gem push "${GEM_FILE}"'
         
     | 
| 
      
 66 
     | 
    
         
            +
              rules:
         
     | 
| 
      
 67 
     | 
    
         
            +
                 - if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+(\.[a-zA-Z0-9]+)?$/
         
     | 
| 
      
 68 
     | 
    
         
            +
              artifacts:
         
     | 
| 
      
 69 
     | 
    
         
            +
                paths:
         
     | 
| 
      
 70 
     | 
    
         
            +
                  - "*.gem"
         
     | 
| 
      
 71 
     | 
    
         
            +
              tags:
         
     | 
| 
      
 72 
     | 
    
         
            +
                - deploy
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -23,6 +23,8 @@ GEM 
     | 
|
| 
       23 
23 
     | 
    
         
             
                  racc (~> 1.4)
         
     | 
| 
       24 
24 
     | 
    
         
             
                nokogiri (1.15.2-x64-mingw-ucrt)
         
     | 
| 
       25 
25 
     | 
    
         
             
                  racc (~> 1.4)
         
     | 
| 
      
 26 
     | 
    
         
            +
                nokogiri (1.15.2-x86_64-darwin)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  racc (~> 1.4)
         
     | 
| 
       26 
28 
     | 
    
         
             
                nokogiri (1.15.2-x86_64-linux)
         
     | 
| 
       27 
29 
     | 
    
         
             
                  racc (~> 1.4)
         
     | 
| 
       28 
30 
     | 
    
         
             
                parallel (1.23.0)
         
     | 
| 
         @@ -104,6 +106,7 @@ PLATFORMS 
     | 
|
| 
       104 
106 
     | 
    
         
             
              arm64-darwin-21
         
     | 
| 
       105 
107 
     | 
    
         
             
              arm64-darwin-22
         
     | 
| 
       106 
108 
     | 
    
         
             
              x64-mingw-ucrt
         
     | 
| 
      
 109 
     | 
    
         
            +
              x86_64-darwin-21
         
     | 
| 
       107 
110 
     | 
    
         
             
              x86_64-linux
         
     | 
| 
       108 
111 
     | 
    
         | 
| 
       109 
112 
     | 
    
         
             
            DEPENDENCIES
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -71,22 +71,20 @@ rspec 
     | 
|
| 
       71 
71 
     | 
    
         | 
| 
       72 
72 
     | 
    
         
             
            ## Publishing the Gem
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
            1. Update the `VERSION` constant in  
     | 
| 
       75 
     | 
    
         
            -
            2.  
     | 
| 
       76 
     | 
    
         
            -
            3.  
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
                - rubocop check
         
     | 
| 
       92 
     | 
    
         
            -
                - rdoc/yard coverage checks?
         
     | 
| 
      
 74 
     | 
    
         
            +
            1. Update the `VERSION` constant in [lib/pennmarc/version.rb](lib/pennmarc/version.rb) following this gem's versioning pattern (ex 1.1.0).
         
     | 
| 
      
 75 
     | 
    
         
            +
            2. Merge the change into `main`.
         
     | 
| 
      
 76 
     | 
    
         
            +
            3. Create a Gitlab Release:
         
     | 
| 
      
 77 
     | 
    
         
            +
               1. Go to https://gitlab.library.upenn.edu/dld/catalog/pennmarc/-/releases/new
         
     | 
| 
      
 78 
     | 
    
         
            +
               2. Create a new tag that matches the version set in step 1 (ex: v1.1.0). 
         
     | 
| 
      
 79 
     | 
    
         
            +
               3. Add a release title that is the same as the tag name. 
         
     | 
| 
      
 80 
     | 
    
         
            +
               4. Submit by clicking "Create Release".
         
     | 
| 
      
 81 
     | 
    
         
            +
            4. Once the release is created a pipeline will run to publish the gem to RubyGems. 
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            ### Versioning Guidelines
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            We do not explicitly follow [Semantic Versioning](https://semver.org/) principles, but follow it's general principles. 
         
     | 
| 
      
 86 
     | 
    
         
            +
            In common cases, here's what to do:
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            - Increment **MAJOR_VERSION** if the `Parser` class functionality is modified in a breaking fashion.
         
     | 
| 
      
 89 
     | 
    
         
            +
            - Increment **MINOR_VERSION** if a `Helper` class is renamed, or if an existing helper method is renamed.
         
     | 
| 
      
 90 
     | 
    
         
            +
            - Increment **PATCH_VERSION** if a new `Helper` class or method is added, of if any non-breaking bugfix is made.
         
     | 
| 
         @@ -5,8 +5,6 @@ module PennMARC 
     | 
|
| 
       5 
5 
     | 
    
         
             
              class Access < Helper
         
     | 
| 
       6 
6 
     | 
    
         
             
                ONLINE = 'Online'
         
     | 
| 
       7 
7 
     | 
    
         
             
                AT_THE_LIBRARY = 'At the library'
         
     | 
| 
       8 
     | 
    
         
            -
                ELEC_AVAILABILITY_TAG = 'AVE'
         
     | 
| 
       9 
     | 
    
         
            -
                PHYS_AVAILABILITY_TAG = 'AVA'
         
     | 
| 
       10 
8 
     | 
    
         | 
| 
       11 
9 
     | 
    
         
             
                class << self
         
     | 
| 
       12 
10 
     | 
    
         
             
                  # Based on enhanced metadata fields added by Alma publishing process or API, determine if the record has
         
     | 
| 
         @@ -35,14 +33,14 @@ module PennMARC 
     | 
|
| 
       35 
33 
     | 
    
         
             
                  # @param [MARC::Field] field
         
     | 
| 
       36 
34 
     | 
    
         
             
                  # @return [Boolean]
         
     | 
| 
       37 
35 
     | 
    
         
             
                  def electronic_holding_tag?(field)
         
     | 
| 
       38 
     | 
    
         
            -
                    field.tag.in? [EnrichedMarc::TAG_ELECTRONIC_INVENTORY,  
     | 
| 
      
 36 
     | 
    
         
            +
                    field.tag.in? [EnrichedMarc::TAG_ELECTRONIC_INVENTORY, EnrichedMarc::AlmaApi::TAG_ELECTRONIC_INVENTORY]
         
     | 
| 
       39 
37 
     | 
    
         
             
                  end
         
     | 
| 
       40 
38 
     | 
    
         | 
| 
       41 
39 
     | 
    
         
             
                  # Does the record have added physical holding info?
         
     | 
| 
       42 
40 
     | 
    
         
             
                  # @param [MARC::Field] field
         
     | 
| 
       43 
41 
     | 
    
         
             
                  # @return [Boolean]
         
     | 
| 
       44 
42 
     | 
    
         
             
                  def physical_holding_tag?(field)
         
     | 
| 
       45 
     | 
    
         
            -
                    field.tag.in? [EnrichedMarc::TAG_HOLDING,  
     | 
| 
      
 43 
     | 
    
         
            +
                    field.tag.in? [EnrichedMarc::TAG_HOLDING, EnrichedMarc::AlmaApi::TAG_PHYSICAL_INVENTORY]
         
     | 
| 
       46 
44 
     | 
    
         
             
                  end
         
     | 
| 
       47 
45 
     | 
    
         | 
| 
       48 
46 
     | 
    
         
             
                  # Check if a record contains an 856 entry for an online finding aid, meeting these criteria:
         
     | 
| 
         @@ -20,7 +20,8 @@ module PennMARC 
     | 
|
| 
       20 
20 
     | 
    
         
             
                  end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                  # Retrieve date added (subfield 'q') from enriched marc 'itm' field.
         
     | 
| 
       23 
     | 
    
         
            -
                  # {PennMARC::EnrichedMarc} maps enriched marc fields and subfields created during Alma publishing.
         
     | 
| 
      
 23 
     | 
    
         
            +
                  # {PennMARC::EnrichedMarc} maps enriched marc fields and subfields created during Alma publishing. The enriched
         
     | 
| 
      
 24 
     | 
    
         
            +
                  # metadata provided by the Alma API does not include the date created value, so we can't work with that here.
         
     | 
| 
       24 
25 
     | 
    
         
             
                  # @param [MARC::Record] record
         
     | 
| 
       25 
26 
     | 
    
         
             
                  # @return [DateTime, nil] The date added, or nil if date found in record is invalid
         
     | 
| 
       26 
27 
     | 
    
         
             
                  def added(record)
         
     | 
| 
         @@ -80,13 +80,6 @@ module PennMARC 
     | 
|
| 
       80 
80 
     | 
    
         
             
                    title_medium = subfield_values_for tag: '245', subfield: :h, record: record
         
     | 
| 
       81 
81 
     | 
    
         
             
                    media_type = subfield_values_for tag: '337', subfield: :a, record: record
         
     | 
| 
       82 
82 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
                    # Get Call Number for holdings - ǂh gives us the 'Classification part' which can contain strings like
         
     | 
| 
       84 
     | 
    
         
            -
                    # 'Microfilm'
         
     | 
| 
       85 
     | 
    
         
            -
                    call_nums = record.fields(EnrichedMarc::TAG_HOLDING).map do |field|
         
     | 
| 
       86 
     | 
    
         
            -
                      join_subfields(field, &subfield_in?([EnrichedMarc::SUB_HOLDING_CLASSIFICATION_PART,
         
     | 
| 
       87 
     | 
    
         
            -
                                                           EnrichedMarc::SUB_HOLDING_ITEM_PART]))
         
     | 
| 
       88 
     | 
    
         
            -
                    end
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
83 
     | 
    
         
             
                    # get all specific_location values from inventory info
         
     | 
| 
       91 
84 
     | 
    
         
             
                    locations = Location.location record: record, location_map: location_map,
         
     | 
| 
       92 
85 
     | 
    
         
             
                                                  display_value: :specific_location
         
     | 
| 
         @@ -95,7 +88,7 @@ module PennMARC 
     | 
|
| 
       95 
88 
     | 
    
         
             
                      formats << MANUSCRIPT
         
     | 
| 
       96 
89 
     | 
    
         
             
                    elsif archives_but_not_cajs_or_nursing?(locations)
         
     | 
| 
       97 
90 
     | 
    
         
             
                      formats << ARCHIVE
         
     | 
| 
       98 
     | 
    
         
            -
                    elsif micro_or_microform?(call_nums, locations, media_type, title_medium)
         
     | 
| 
      
 91 
     | 
    
         
            +
                    elsif micro_or_microform?(call_nums(record), locations, media_type, title_medium)
         
     | 
| 
       99 
92 
     | 
    
         
             
                      formats << MICROFORMAT
         
     | 
| 
       100 
93 
     | 
    
         
             
                    else
         
     | 
| 
       101 
94 
     | 
    
         
             
                      # any of these
         
     | 
| 
         @@ -167,6 +160,25 @@ module PennMARC 
     | 
|
| 
       167 
160 
     | 
    
         | 
| 
       168 
161 
     | 
    
         
             
                  private
         
     | 
| 
       169 
162 
     | 
    
         | 
| 
      
 163 
     | 
    
         
            +
                  # Get Call Numbers for holdings using the 'Classification part' which can contain strings like
         
     | 
| 
      
 164 
     | 
    
         
            +
                  # 'Microfilm'. Look in enriched tags used by both Alma Publishing and API.
         
     | 
| 
      
 165 
     | 
    
         
            +
                  # @param [MARC::Record] record
         
     | 
| 
      
 166 
     | 
    
         
            +
                  # @return [Array]
         
     | 
| 
      
 167 
     | 
    
         
            +
                  def call_nums(record)
         
     | 
| 
      
 168 
     | 
    
         
            +
                    if field_defined?(record, EnrichedMarc::TAG_HOLDING)
         
     | 
| 
      
 169 
     | 
    
         
            +
                      record.fields(EnrichedMarc::TAG_HOLDING).map do |field|
         
     | 
| 
      
 170 
     | 
    
         
            +
                        join_subfields(field, &subfield_in?([EnrichedMarc::SUB_HOLDING_CLASSIFICATION_PART,
         
     | 
| 
      
 171 
     | 
    
         
            +
                                                             EnrichedMarc::SUB_HOLDING_ITEM_PART]))
         
     | 
| 
      
 172 
     | 
    
         
            +
                      end
         
     | 
| 
      
 173 
     | 
    
         
            +
                    elsif field_defined?(record, EnrichedMarc::AlmaApi::TAG_PHYSICAL_INVENTORY)
         
     | 
| 
      
 174 
     | 
    
         
            +
                      record.fields(EnrichedMarc::AlmaApi::TAG_PHYSICAL_INVENTORY).map do |field|
         
     | 
| 
      
 175 
     | 
    
         
            +
                        join_subfields(field, &subfield_in?([EnrichedMarc::AlmaApi::SUB_PHYSICAL_CALL_NUMBER_TYPE]))
         
     | 
| 
      
 176 
     | 
    
         
            +
                      end
         
     | 
| 
      
 177 
     | 
    
         
            +
                    else
         
     | 
| 
      
 178 
     | 
    
         
            +
                      []
         
     | 
| 
      
 179 
     | 
    
         
            +
                    end
         
     | 
| 
      
 180 
     | 
    
         
            +
                  end
         
     | 
| 
      
 181 
     | 
    
         
            +
             
     | 
| 
       170 
182 
     | 
    
         
             
                  # Get 'Curated' format from.
         
     | 
| 
       171 
183 
     | 
    
         
             
                  # {https://upennlibrary.atlassian.net/wiki/spaces/ALMA/pages/323912493/Local+9XX+Field+Use+in+Alma local field
         
     | 
| 
       172 
184 
     | 
    
         
             
                  # 944} ǂa, as long as it is not a numerical value.
         
     | 
| 
         @@ -85,9 +85,14 @@ module PennMARC 
     | 
|
| 
       85 
85 
     | 
    
         
             
                    tag = PennMARC::EnrichedMarc::TAG_HOLDING
         
     | 
| 
       86 
86 
     | 
    
         
             
                    subfield_code = PennMARC::EnrichedMarc::SUB_HOLDING_SHELVING_LOCATION
         
     | 
| 
       87 
87 
     | 
    
         | 
| 
       88 
     | 
    
         
            -
                    if record 
     | 
| 
      
 88 
     | 
    
         
            +
                    # if the record has an enriched item field present, use it
         
     | 
| 
      
 89 
     | 
    
         
            +
                    if field_defined?(record, PennMARC::EnrichedMarc::TAG_ITEM)
         
     | 
| 
       89 
90 
     | 
    
         
             
                      tag = PennMARC::EnrichedMarc::TAG_ITEM
         
     | 
| 
       90 
91 
     | 
    
         
             
                      subfield_code = PennMARC::EnrichedMarc::SUB_ITEM_CURRENT_LOCATION
         
     | 
| 
      
 92 
     | 
    
         
            +
                    # otherwise, use the api enriched field value
         
     | 
| 
      
 93 
     | 
    
         
            +
                    elsif field_defined?(record, EnrichedMarc::AlmaApi::TAG_PHYSICAL_INVENTORY)
         
     | 
| 
      
 94 
     | 
    
         
            +
                      tag = EnrichedMarc::AlmaApi::TAG_PHYSICAL_INVENTORY
         
     | 
| 
      
 95 
     | 
    
         
            +
                      subfield_code = EnrichedMarc::AlmaApi::SUB_HOLDING_LOCATION_CODE
         
     | 
| 
       91 
96 
     | 
    
         
             
                    end
         
     | 
| 
       92 
97 
     | 
    
         | 
| 
       93 
98 
     | 
    
         
             
                    { tag: tag, subfield_code: subfield_code }
         
     | 
| 
         @@ -1,8 +1,4 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
            3eastelev:
         
     | 
| 
       3 
     | 
    
         
            -
              specific_location: Van Pelt - third floor east elevator lobby
         
     | 
| 
       4 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       5 
     | 
    
         
            -
              display: Van Pelt - third floor east elevator lobby
         
     | 
| 
       6 
2 
     | 
    
         
             
            afro:
         
     | 
| 
       7 
3 
     | 
    
         
             
              specific_location: Van Pelt - Africana Studies Resource Room
         
     | 
| 
       8 
4 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
         @@ -177,12 +173,6 @@ biomlibr: 
     | 
|
| 
       177 
173 
     | 
    
         
             
                - Health Sciences Libraries
         
     | 
| 
       178 
174 
     | 
    
         
             
                - Holman Biotech Commons
         
     | 
| 
       179 
175 
     | 
    
         
             
              display: Holman Biotech Commons - Librarian's Office
         
     | 
| 
       180 
     | 
    
         
            -
            biomonli:
         
     | 
| 
       181 
     | 
    
         
            -
              specific_location: Holman Biotech Commons - Online Office
         
     | 
| 
       182 
     | 
    
         
            -
              library:
         
     | 
| 
       183 
     | 
    
         
            -
                - Health Sciences Libraries
         
     | 
| 
       184 
     | 
    
         
            -
                - Holman Biotech Commons
         
     | 
| 
       185 
     | 
    
         
            -
              display: Holman Biotech Commons - Online Office
         
     | 
| 
       186 
176 
     | 
    
         
             
            biomperi:
         
     | 
| 
       187 
177 
     | 
    
         
             
              specific_location: Holman Biotech Commons - Periodicals
         
     | 
| 
       188 
178 
     | 
    
         
             
              library:
         
     | 
| 
         @@ -550,10 +540,6 @@ dncirc: 
     | 
|
| 
       550 
540 
     | 
    
         
             
                - Health Sciences Libraries
         
     | 
| 
       551 
541 
     | 
    
         
             
                - Levy Dental Medicine Library
         
     | 
| 
       552 
542 
     | 
    
         
             
              display: Levy Dental Medicine Library - Circulation
         
     | 
| 
       553 
     | 
    
         
            -
            easiacom:
         
     | 
| 
       554 
     | 
    
         
            -
              specific_location: Van Pelt - East Asia Compact Shelving
         
     | 
| 
       555 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       556 
     | 
    
         
            -
              display: Van Pelt - East Asia Compact Shelving
         
     | 
| 
       557 
543 
     | 
    
         
             
            easiacmx:
         
     | 
| 
       558 
544 
     | 
    
         
             
              specific_location: Van Pelt - East Asia Comics
         
     | 
| 
       559 
545 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
         @@ -576,40 +562,6 @@ edcomm: 
     | 
|
| 
       576 
562 
     | 
    
         
             
                - Van Pelt-Dietrich Library Center
         
     | 
| 
       577 
563 
     | 
    
         
             
                - Education Commons
         
     | 
| 
       578 
564 
     | 
    
         
             
              display: Education Commons
         
     | 
| 
       579 
     | 
    
         
            -
            engi:
         
     | 
| 
       580 
     | 
    
         
            -
              specific_location: Engineering Library
         
     | 
| 
       581 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       582 
     | 
    
         
            -
              display: Engineering Library
         
     | 
| 
       583 
     | 
    
         
            -
            engicirc:
         
     | 
| 
       584 
     | 
    
         
            -
              specific_location: Engineering Library - Circulation Desk
         
     | 
| 
       585 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       586 
     | 
    
         
            -
              display: Engineering Library - Circulation Desk
         
     | 
| 
       587 
     | 
    
         
            -
            enginewbk:
         
     | 
| 
       588 
     | 
    
         
            -
              specific_location: Engineering Library - New Book
         
     | 
| 
       589 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       590 
     | 
    
         
            -
              display: Engineering Library - New Book
         
     | 
| 
       591 
     | 
    
         
            -
            engiperi:
         
     | 
| 
       592 
     | 
    
         
            -
              specific_location: Engineering Library - Periodicals
         
     | 
| 
       593 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       594 
     | 
    
         
            -
              display: Engineering Library - Periodicals (alphabetical by title)
         
     | 
| 
       595 
     | 
    
         
            -
            engirefe:
         
     | 
| 
       596 
     | 
    
         
            -
              specific_location: Engineering Library - Reference
         
     | 
| 
       597 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       598 
     | 
    
         
            -
              display: Engineering Library - Reference
         
     | 
| 
       599 
     | 
    
         
            -
            engirese:
         
     | 
| 
       600 
     | 
    
         
            -
              specific_location: Engineering Library - Reserve
         
     | 
| 
       601 
     | 
    
         
            -
              library:
         
     | 
| 
       602 
     | 
    
         
            -
                - Engineering Library
         
     | 
| 
       603 
     | 
    
         
            -
                - Reserve
         
     | 
| 
       604 
     | 
    
         
            -
              display: Engineering Library - Reserve
         
     | 
| 
       605 
     | 
    
         
            -
            engsc:
         
     | 
| 
       606 
     | 
    
         
            -
              specific_location: Engineering Library - Study Collection
         
     | 
| 
       607 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       608 
     | 
    
         
            -
              display: Engineering Library - Study Collection
         
     | 
| 
       609 
     | 
    
         
            -
            eres:
         
     | 
| 
       610 
     | 
    
         
            -
              specific_location:
         
     | 
| 
       611 
     | 
    
         
            -
              library:
         
     | 
| 
       612 
     | 
    
         
            -
              display: E-reserves
         
     | 
| 
       613 
565 
     | 
    
         
             
            fanewbook:
         
     | 
| 
       614 
566 
     | 
    
         
             
              specific_location: Fisher Fine Arts Library - New Book Display
         
     | 
| 
       615 
567 
     | 
    
         
             
              library: Fisher Fine Arts Library
         
     | 
| 
         @@ -684,10 +636,6 @@ finestudio: 
     | 
|
| 
       684 
636 
     | 
    
         
             
              specific_location: Fisher Fine Arts Library - Studio Collection
         
     | 
| 
       685 
637 
     | 
    
         
             
              library: Fisher Fine Arts Library
         
     | 
| 
       686 
638 
     | 
    
         
             
              display: Fine Arts Library - Studio Collection
         
     | 
| 
       687 
     | 
    
         
            -
            HARR:
         
     | 
| 
       688 
     | 
    
         
            -
              specific_location:
         
     | 
| 
       689 
     | 
    
         
            -
              library:
         
     | 
| 
       690 
     | 
    
         
            -
              display:
         
     | 
| 
       691 
639 
     | 
    
         
             
            judaica:
         
     | 
| 
       692 
640 
     | 
    
         
             
              specific_location: Van Pelt - Judaica and Ancient Near East Resource Room
         
     | 
| 
       693 
641 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
         @@ -822,20 +770,6 @@ mideastres: 
     | 
|
| 
       822 
770 
     | 
    
         
             
                - Van Pelt-Dietrich Library Center
         
     | 
| 
       823 
771 
     | 
    
         
             
                - Reserve
         
     | 
| 
       824 
772 
     | 
    
         
             
              display: Van Pelt - Middle East Seminar Reserve
         
     | 
| 
       825 
     | 
    
         
            -
            moor:
         
     | 
| 
       826 
     | 
    
         
            -
              specific_location: Engineering Library
         
     | 
| 
       827 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       828 
     | 
    
         
            -
              display: Engineering Library
         
     | 
| 
       829 
     | 
    
         
            -
            moorrefe:
         
     | 
| 
       830 
     | 
    
         
            -
              specific_location: Engineering Library - Reference
         
     | 
| 
       831 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       832 
     | 
    
         
            -
              display: Engineering Library - Reference
         
     | 
| 
       833 
     | 
    
         
            -
            moorrese:
         
     | 
| 
       834 
     | 
    
         
            -
              specific_location: Engineering Library - Reserve
         
     | 
| 
       835 
     | 
    
         
            -
              library:
         
     | 
| 
       836 
     | 
    
         
            -
                - Engineering Library
         
     | 
| 
       837 
     | 
    
         
            -
                - Reserve
         
     | 
| 
       838 
     | 
    
         
            -
              display: Engineering Library - Reserve
         
     | 
| 
       839 
773 
     | 
    
         
             
            muse:
         
     | 
| 
       840 
774 
     | 
    
         
             
              specific_location: Penn Museum Library
         
     | 
| 
       841 
775 
     | 
    
         
             
              library: Penn Museum Library
         
     | 
| 
         @@ -876,6 +810,10 @@ musemedia: 
     | 
|
| 
       876 
810 
     | 
    
         
             
              specific_location: Penn Museum Library - Media
         
     | 
| 
       877 
811 
     | 
    
         
             
              library: Penn Museum Library
         
     | 
| 
       878 
812 
     | 
    
         
             
              display: Penn Museum Library - Media
         
     | 
| 
      
 813 
     | 
    
         
            +
            musenewbk:
         
     | 
| 
      
 814 
     | 
    
         
            +
              specific_location: Penn Museum Library - New Books Display
         
     | 
| 
      
 815 
     | 
    
         
            +
              library: Penn Museum Library
         
     | 
| 
      
 816 
     | 
    
         
            +
              display: Penn Museum Library - New Books Display
         
     | 
| 
       879 
817 
     | 
    
         
             
            muserefe:
         
     | 
| 
       880 
818 
     | 
    
         
             
              specific_location: Penn Museum Library - Reference
         
     | 
| 
       881 
819 
     | 
    
         
             
              library: Penn Museum Library
         
     | 
| 
         @@ -965,83 +903,6 @@ nursarch: 
     | 
|
| 
       965 
903 
     | 
    
         
             
              specific_location: Nursing Archives
         
     | 
| 
       966 
904 
     | 
    
         
             
              library: Nursing Archives
         
     | 
| 
       967 
905 
     | 
    
         
             
              display: Barbara Bates Center for History of Nursing - Fagin Hall 2U
         
     | 
| 
       968 
     | 
    
         
            -
            oobiom:
         
     | 
| 
       969 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       970 
     | 
    
         
            -
              library:
         
     | 
| 
       971 
     | 
    
         
            -
                - Health Sciences Libraries
         
     | 
| 
       972 
     | 
    
         
            -
                - Holman Biotech Commons
         
     | 
| 
       973 
     | 
    
         
            -
              display: Ordered for Holman Biotech Commons
         
     | 
| 
       974 
     | 
    
         
            -
            oochem:
         
     | 
| 
       975 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       976 
     | 
    
         
            -
              library: Chemistry Library
         
     | 
| 
       977 
     | 
    
         
            -
              display: Ordered for Chemistry Library
         
     | 
| 
       978 
     | 
    
         
            -
            oocjs:
         
     | 
| 
       979 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       980 
     | 
    
         
            -
              library: Library at the Katz Center for Advanced Judaic Studies
         
     | 
| 
       981 
     | 
    
         
            -
              display: Ordered for Center for Judaic Studies Library
         
     | 
| 
       982 
     | 
    
         
            -
            oodental:
         
     | 
| 
       983 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       984 
     | 
    
         
            -
              library:
         
     | 
| 
       985 
     | 
    
         
            -
                - Health Sciences Libraries
         
     | 
| 
       986 
     | 
    
         
            -
                - Levy Dental Medicine Library
         
     | 
| 
       987 
     | 
    
         
            -
              display: Ordered for Levy Dental Medicine Library
         
     | 
| 
       988 
     | 
    
         
            -
            ooeastasia:
         
     | 
| 
       989 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       990 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       991 
     | 
    
         
            -
              display: Ordered for East Asia
         
     | 
| 
       992 
     | 
    
         
            -
            ooengi:
         
     | 
| 
       993 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       994 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       995 
     | 
    
         
            -
              display: Ordered for Engineering Library
         
     | 
| 
       996 
     | 
    
         
            -
            oofine:
         
     | 
| 
       997 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       998 
     | 
    
         
            -
              library: Fisher Fine Arts Library
         
     | 
| 
       999 
     | 
    
         
            -
              display: Ordered for Fine Arts Library
         
     | 
| 
       1000 
     | 
    
         
            -
            oolipp:
         
     | 
| 
       1001 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1002 
     | 
    
         
            -
              library: Lippincott Library
         
     | 
| 
       1003 
     | 
    
         
            -
              display: Ordered for Lippincott Library
         
     | 
| 
       1004 
     | 
    
         
            -
            oomath:
         
     | 
| 
       1005 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1006 
     | 
    
         
            -
              library: Math/Physics/Astronomy Library
         
     | 
| 
       1007 
     | 
    
         
            -
              display: Ordered for Math-Physics-Astronomy Library
         
     | 
| 
       1008 
     | 
    
         
            -
            oomuse:
         
     | 
| 
       1009 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1010 
     | 
    
         
            -
              library: Penn Museum Library
         
     | 
| 
       1011 
     | 
    
         
            -
              display: Ordered for Museum Library
         
     | 
| 
       1012 
     | 
    
         
            -
            oomusic:
         
     | 
| 
       1013 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1014 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1015 
     | 
    
         
            -
              display: Ordered for Music Library
         
     | 
| 
       1016 
     | 
    
         
            -
            oonewbolt:
         
     | 
| 
       1017 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1018 
     | 
    
         
            -
              library:
         
     | 
| 
       1019 
     | 
    
         
            -
                - Health Sciences Libraries
         
     | 
| 
       1020 
     | 
    
         
            -
                - Veterinary
         
     | 
| 
       1021 
     | 
    
         
            -
                - 'Veterinary: du Pont Library (New Bolton)'
         
     | 
| 
       1022 
     | 
    
         
            -
              display: Ordered for New Bolton Library
         
     | 
| 
       1023 
     | 
    
         
            -
            ooormandy:
         
     | 
| 
       1024 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1025 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1026 
     | 
    
         
            -
              display: Ordered for Ormandy Center
         
     | 
| 
       1027 
     | 
    
         
            -
            oostor:
         
     | 
| 
       1028 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1029 
     | 
    
         
            -
              library: LIBRA
         
     | 
| 
       1030 
     | 
    
         
            -
              display: Ordered for LIBRA
         
     | 
| 
       1031 
     | 
    
         
            -
            oovanp:
         
     | 
| 
       1032 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1033 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1034 
     | 
    
         
            -
              display: Ordered for Van Pelt Library
         
     | 
| 
       1035 
     | 
    
         
            -
            oovete:
         
     | 
| 
       1036 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1037 
     | 
    
         
            -
              library:
         
     | 
| 
       1038 
     | 
    
         
            -
                - Health Sciences Libraries
         
     | 
| 
       1039 
     | 
    
         
            -
                - Veterinary
         
     | 
| 
       1040 
     | 
    
         
            -
              display: 'Ordered for Veterinary: Atwood Library (Campus)'
         
     | 
| 
       1041 
     | 
    
         
            -
            ooyarn:
         
     | 
| 
       1042 
     | 
    
         
            -
              specific_location: On Order
         
     | 
| 
       1043 
     | 
    
         
            -
              library: Yarnall Collection
         
     | 
| 
       1044 
     | 
    
         
            -
              display: Ordered for Yarnall collection
         
     | 
| 
       1045 
906 
     | 
    
         
             
            pah:
         
     | 
| 
       1046 
907 
     | 
    
         
             
              specific_location: Pennsylvania Hospital Library
         
     | 
| 
       1047 
908 
     | 
    
         
             
              library:
         
     | 
| 
         @@ -1108,24 +969,6 @@ religious: 
     | 
|
| 
       1108 
969 
     | 
    
         
             
              specific_location: Van Pelt - Medieval Studies Resource Room
         
     | 
| 
       1109 
970 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1110 
971 
     | 
    
         
             
              display: Van Pelt - Medieval Studies Resource Room (405)
         
     | 
| 
       1111 
     | 
    
         
            -
            rosedesk:
         
     | 
| 
       1112 
     | 
    
         
            -
              specific_location: Van Pelt - Rosengarten Reserve
         
     | 
| 
       1113 
     | 
    
         
            -
              library:
         
     | 
| 
       1114 
     | 
    
         
            -
                - Van Pelt-Dietrich Library Center
         
     | 
| 
       1115 
     | 
    
         
            -
                - Reserve
         
     | 
| 
       1116 
     | 
    
         
            -
              display: Van Pelt - Rosengarten Reserve Desk
         
     | 
| 
       1117 
     | 
    
         
            -
            roserefe:
         
     | 
| 
       1118 
     | 
    
         
            -
              specific_location: Van Pelt - Rosengarten Reserve
         
     | 
| 
       1119 
     | 
    
         
            -
              library:
         
     | 
| 
       1120 
     | 
    
         
            -
                - Van Pelt-Dietrich Library Center
         
     | 
| 
       1121 
     | 
    
         
            -
                - Reserve
         
     | 
| 
       1122 
     | 
    
         
            -
              display: Van Pelt - Rosengarten Reserve Reference
         
     | 
| 
       1123 
     | 
    
         
            -
            roserese:
         
     | 
| 
       1124 
     | 
    
         
            -
              specific_location: Van Pelt - Rosengarten Reserve
         
     | 
| 
       1125 
     | 
    
         
            -
              library:
         
     | 
| 
       1126 
     | 
    
         
            -
                - Van Pelt-Dietrich Library Center
         
     | 
| 
       1127 
     | 
    
         
            -
                - Reserve
         
     | 
| 
       1128 
     | 
    
         
            -
              display: Van Pelt - Rosengarten Reserve
         
     | 
| 
       1129 
972 
     | 
    
         
             
            rotc:
         
     | 
| 
       1130 
973 
     | 
    
         
             
              specific_location:
         
     | 
| 
       1131 
974 
     | 
    
         
             
              library:
         
     | 
| 
         @@ -1526,41 +1369,14 @@ scrunning: 
     | 
|
| 
       1526 
1369 
     | 
    
         
             
                - Special Collections
         
     | 
| 
       1527 
1370 
     | 
    
         
             
                - LIBRA
         
     | 
| 
       1528 
1371 
     | 
    
         
             
              display: LIBRA Running Press Collection
         
     | 
| 
       1529 
     | 
    
         
            -
            sw3rdfl:
         
     | 
| 
       1530 
     | 
    
         
            -
              specific_location: Van Pelt - Temporarily shelved on third floor southwest corner
         
     | 
| 
       1531 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1532 
     | 
    
         
            -
              display: Van Pelt - Temporarily shelved on third floor southwest corner
         
     | 
| 
       1533 
     | 
    
         
            -
            refsw3rdfl:
         
     | 
| 
       1534 
     | 
    
         
            -
              specific_location: Van Pelt - Temporarily shelved on third floor southwest reference
         
     | 
| 
       1535 
     | 
    
         
            -
                corner
         
     | 
| 
       1536 
     | 
    
         
            -
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1537 
     | 
    
         
            -
              display: Van Pelt - Temporarily shelved on third floor southwest reference corner
         
     | 
| 
       1538 
     | 
    
         
            -
            town:
         
     | 
| 
       1539 
     | 
    
         
            -
              specific_location: Engineering Library
         
     | 
| 
       1540 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       1541 
     | 
    
         
            -
              display: Engineering Library
         
     | 
| 
       1542 
     | 
    
         
            -
            townrefe:
         
     | 
| 
       1543 
     | 
    
         
            -
              specific_location: Engineering Library - Reference
         
     | 
| 
       1544 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       1545 
     | 
    
         
            -
              display: Engineering Library - Reference
         
     | 
| 
       1546 
     | 
    
         
            -
            townrese:
         
     | 
| 
       1547 
     | 
    
         
            -
              specific_location: Engineering Library - Reserve
         
     | 
| 
       1548 
     | 
    
         
            -
              library:
         
     | 
| 
       1549 
     | 
    
         
            -
                - Engineering Library
         
     | 
| 
       1550 
     | 
    
         
            -
                - Reserve
         
     | 
| 
       1551 
     | 
    
         
            -
              display: Engineering Library - Reserve
         
     | 
| 
       1552 
     | 
    
         
            -
            townthes:
         
     | 
| 
       1553 
     | 
    
         
            -
              specific_location: Engineering Library - Theses
         
     | 
| 
       1554 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       1555 
     | 
    
         
            -
              display: Engineering Library - Theses
         
     | 
| 
       1556 
     | 
    
         
            -
            twcirc:
         
     | 
| 
       1557 
     | 
    
         
            -
              specific_location:
         
     | 
| 
       1558 
     | 
    
         
            -
              library: Engineering Library
         
     | 
| 
       1559 
     | 
    
         
            -
              display: Engineering Library - Circulation Desk
         
     | 
| 
       1560 
1372 
     | 
    
         
             
            univarch:
         
     | 
| 
       1561 
1373 
     | 
    
         
             
              specific_location: University Archives
         
     | 
| 
       1562 
1374 
     | 
    
         
             
              library: University Archives
         
     | 
| 
       1563 
1375 
     | 
    
         
             
              display: University Archives
         
     | 
| 
      
 1376 
     | 
    
         
            +
            RDDSXBooks:
         
     | 
| 
      
 1377 
     | 
    
         
            +
              specific_location: Van Pelt - RDDSX Books
         
     | 
| 
      
 1378 
     | 
    
         
            +
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
      
 1379 
     | 
    
         
            +
              display: Van Pelt - RDDSX Books
         
     | 
| 
       1564 
1380 
     | 
    
         
             
            vanp:
         
     | 
| 
       1565 
1381 
     | 
    
         
             
              specific_location: Van Pelt - Stacks
         
     | 
| 
       1566 
1382 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
         @@ -1577,14 +1393,14 @@ vanpcgc: 
     | 
|
| 
       1577 
1393 
     | 
    
         
             
              specific_location: Van Pelt - Center for Global Collections
         
     | 
| 
       1578 
1394 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1579 
1395 
     | 
    
         
             
              display: Van Pelt - Center for Global Collections
         
     | 
| 
      
 1396 
     | 
    
         
            +
            vanpcgccm:
         
     | 
| 
      
 1397 
     | 
    
         
            +
              specific_location: Van Pelt - Global Comics Collection
         
     | 
| 
      
 1398 
     | 
    
         
            +
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
      
 1399 
     | 
    
         
            +
              display: Van Pelt - Global Comics Collection
         
     | 
| 
       1580 
1400 
     | 
    
         
             
            vanpmicro:
         
     | 
| 
       1581 
1401 
     | 
    
         
             
              specific_location: Van Pelt - Microtext
         
     | 
| 
       1582 
1402 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
       1583 
1403 
     | 
    
         
             
              display: Van Pelt - Microtext
         
     | 
| 
       1584 
     | 
    
         
            -
            vanpmiddle:
         
     | 
| 
       1585 
     | 
    
         
            -
              specific_location:
         
     | 
| 
       1586 
     | 
    
         
            -
              library:
         
     | 
| 
       1587 
     | 
    
         
            -
              display: Van Pelt - Middle East Tech Services
         
     | 
| 
       1588 
1404 
     | 
    
         
             
            vanpNoCirc:
         
     | 
| 
       1589 
1405 
     | 
    
         
             
              specific_location: Van Pelt - Non Circulating
         
     | 
| 
       1590 
1406 
     | 
    
         
             
              library: Van Pelt-Dietrich Library Center
         
     | 
| 
         @@ -1798,4 +1614,4 @@ hspref: 
     | 
|
| 
       1798 
1614 
     | 
    
         
             
            hspstafref:
         
     | 
| 
       1799 
1615 
     | 
    
         
             
              specific_location: Historical Society of Pennsylvania - Staff Reference
         
     | 
| 
       1800 
1616 
     | 
    
         
             
              library: Historical Society of Pennsylvania
         
     | 
| 
       1801 
     | 
    
         
            -
              display: Historical Society of Pennsylvania - Staff Reference
         
     | 
| 
      
 1617 
     | 
    
         
            +
              display: Historical Society of Pennsylvania - Staff Reference
         
     | 
    
        data/lib/pennmarc/version.rb
    CHANGED
    
    
    
        data/pennmarc.gemspec
    CHANGED
    
    
| 
         @@ -18,7 +18,7 @@ describe 'PennMARC::Access' do 
     | 
|
| 
       18 
18 
     | 
    
         
             
                  end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
                  context 'with enrichment with availability info via the Alma API' do
         
     | 
| 
       21 
     | 
    
         
            -
                    let(:tag) { PennMARC:: 
     | 
| 
      
 21 
     | 
    
         
            +
                    let(:tag) { PennMARC::EnrichedMarc::AlmaApi::TAG_ELECTRONIC_INVENTORY }
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
                    it 'returns expected access value' do
         
     | 
| 
       24 
24 
     | 
    
         
             
                      expect(helper.facet(record)).to contain_exactly(PennMARC::Access::ONLINE)
         
     | 
| 
         @@ -38,7 +38,7 @@ describe 'PennMARC::Access' do 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                  context 'with enrichment with availability info via the Alma API' do
         
     | 
| 
       41 
     | 
    
         
            -
                    let(:tag) { PennMARC:: 
     | 
| 
      
 41 
     | 
    
         
            +
                    let(:tag) { PennMARC::EnrichedMarc::AlmaApi::TAG_PHYSICAL_INVENTORY }
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                    it 'returns expected access value' do
         
     | 
| 
       44 
44 
     | 
    
         
             
                      expect(helper.facet(record)).to contain_exactly(PennMARC::Access::AT_THE_LIBRARY)
         
     | 
| 
         @@ -60,18 +60,38 @@ describe 'PennMARC::Format' do 
     | 
|
| 
       60 
60 
     | 
    
         
             
                  end
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
62 
     | 
    
         
             
                  it 'returns a facet value of only "Microformat"' do
         
     | 
| 
       63 
     | 
    
         
            -
                    # expect(formats).to eq %w[Microformat Thesis/Dissertation]
         
     | 
| 
       64 
63 
     | 
    
         
             
                    expect(formats).to eq %w[Microformat]
         
     | 
| 
       65 
64 
     | 
    
         
             
                  end
         
     | 
| 
       66 
65 
     | 
    
         
             
                end
         
     | 
| 
       67 
66 
     | 
    
         | 
| 
       68 
67 
     | 
    
         
             
                context 'with Microformats as determined by the holding call numbers' do
         
     | 
| 
       69 
     | 
    
         
            -
                   
     | 
| 
       70 
     | 
    
         
            -
                     
     | 
| 
      
 68 
     | 
    
         
            +
                  context 'with API enriched fields' do
         
     | 
| 
      
 69 
     | 
    
         
            +
                    let(:record) do
         
     | 
| 
      
 70 
     | 
    
         
            +
                      marc_record fields: [
         
     | 
| 
      
 71 
     | 
    
         
            +
                        marc_field(tag: PennMARC::EnrichedMarc::AlmaApi::TAG_PHYSICAL_INVENTORY, subfields: {
         
     | 
| 
      
 72 
     | 
    
         
            +
                                     :h => 'AB123',
         
     | 
| 
      
 73 
     | 
    
         
            +
                                     PennMARC::EnrichedMarc::AlmaApi::SUB_PHYSICAL_CALL_NUMBER_TYPE => '.456 Microfilm'
         
     | 
| 
      
 74 
     | 
    
         
            +
                                   })
         
     | 
| 
      
 75 
     | 
    
         
            +
                      ]
         
     | 
| 
      
 76 
     | 
    
         
            +
                    end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                    it 'returns a facet value of "Microformat"' do
         
     | 
| 
      
 79 
     | 
    
         
            +
                      expect(formats).to eq ['Microformat']
         
     | 
| 
      
 80 
     | 
    
         
            +
                    end
         
     | 
| 
       71 
81 
     | 
    
         
             
                  end
         
     | 
| 
       72 
82 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
                   
     | 
| 
       74 
     | 
    
         
            -
                     
     | 
| 
      
 83 
     | 
    
         
            +
                  context 'with publishing enriched fields' do
         
     | 
| 
      
 84 
     | 
    
         
            +
                    let(:record) do
         
     | 
| 
      
 85 
     | 
    
         
            +
                      marc_record fields: [
         
     | 
| 
      
 86 
     | 
    
         
            +
                        marc_field(tag: PennMARC::EnrichedMarc::TAG_HOLDING,
         
     | 
| 
      
 87 
     | 
    
         
            +
                                   subfields: { :h => 'AB123',
         
     | 
| 
      
 88 
     | 
    
         
            +
                                                PennMARC::EnrichedMarc::SUB_ITEM_CALL_NUMBER_TYPE => '.456 Microfilm' })
         
     | 
| 
      
 89 
     | 
    
         
            +
                      ]
         
     | 
| 
      
 90 
     | 
    
         
            +
                    end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                    it 'returns a facet value of "Microformat"' do
         
     | 
| 
      
 93 
     | 
    
         
            +
                      expect(formats).to eq ['Microformat']
         
     | 
| 
      
 94 
     | 
    
         
            +
                    end
         
     | 
| 
       75 
95 
     | 
    
         
             
                  end
         
     | 
| 
       76 
96 
     | 
    
         
             
                end
         
     | 
| 
       77 
97 
     | 
    
         | 
| 
         @@ -15,8 +15,8 @@ describe 'PennMARC::Link' do 
     | 
|
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                it 'returns full text link text and url' do
         
     | 
| 
       18 
     | 
    
         
            -
                  expect(helper. 
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
                  expect(helper.full_text_links(record)).to contain_exactly({ link_text: 'Materials specified Public note',
         
     | 
| 
      
 19 
     | 
    
         
            +
                                                                              link_url: 'https://www.test-uri.com/' })
         
     | 
| 
       20 
20 
     | 
    
         
             
                end
         
     | 
| 
       21 
21 
     | 
    
         
             
              end
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
         @@ -30,8 +30,8 @@ describe 'PennMARC::Link' do 
     | 
|
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
                it 'returns web link text and url' do
         
     | 
| 
       33 
     | 
    
         
            -
                  expect(helper. 
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
      
 33 
     | 
    
         
            +
                  expect(helper.web_links(record)).to contain_exactly({ link_text: 'Materials specified Public note',
         
     | 
| 
      
 34 
     | 
    
         
            +
                                                                        link_url: 'https://www.test-uri.com/' })
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
36 
     | 
    
         
             
              end
         
     | 
| 
       37 
37 
     | 
    
         
             
            end
         
     | 
| 
         @@ -67,5 +67,17 @@ describe 'PennMARC::Location' do 
     | 
|
| 
       67 
67 
     | 
    
         
             
                                           display_value: :library)).to contain_exactly('LIBRA', 'Online library')
         
     | 
| 
       68 
68 
     | 
    
         
             
                  end
         
     | 
| 
       69 
69 
     | 
    
         
             
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                context 'with AVA fields' do
         
     | 
| 
      
 72 
     | 
    
         
            +
                  let(:record) do
         
     | 
| 
      
 73 
     | 
    
         
            +
                    marc_record(fields: [marc_field(tag: 'AVA', subfields: { b: 'Libra', c: 'LIBRA', j: 'stor' })])
         
     | 
| 
      
 74 
     | 
    
         
            +
                  end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                  it 'returns expected values' do
         
     | 
| 
      
 77 
     | 
    
         
            +
                    expect(helper.location(record: record, location_map: mapping, display_value: :library)).to(
         
     | 
| 
      
 78 
     | 
    
         
            +
                      contain_exactly('LIBRA')
         
     | 
| 
      
 79 
     | 
    
         
            +
                    )
         
     | 
| 
      
 80 
     | 
    
         
            +
                  end
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
       70 
82 
     | 
    
         
             
              end
         
     | 
| 
       71 
83 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: pennmarc
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.11.pre1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Mike Kanning
         
     | 
| 
         @@ -10,7 +10,7 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire:
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date:  
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2024-01-11 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: activesupport
         
     | 
| 
         @@ -77,6 +77,7 @@ extensions: [] 
     | 
|
| 
       77 
77 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       78 
78 
     | 
    
         
             
            files:
         
     | 
| 
       79 
79 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
      
 80 
     | 
    
         
            +
            - ".gitlab-ci.yml"
         
     | 
| 
       80 
81 
     | 
    
         
             
            - ".gitleaks.toml"
         
     | 
| 
       81 
82 
     | 
    
         
             
            - ".rspec"
         
     | 
| 
       82 
83 
     | 
    
         
             
            - ".rubocop.yml"
         
     | 
| 
         @@ -148,7 +149,7 @@ homepage: https://gitlab.library.upenn.edu/dld/catalog/pennmarc 
     | 
|
| 
       148 
149 
     | 
    
         
             
            licenses:
         
     | 
| 
       149 
150 
     | 
    
         
             
            - MIT
         
     | 
| 
       150 
151 
     | 
    
         
             
            metadata:
         
     | 
| 
       151 
     | 
    
         
            -
              rubygems_mfa_required: ' 
     | 
| 
      
 152 
     | 
    
         
            +
              rubygems_mfa_required: 'false'
         
     | 
| 
       152 
153 
     | 
    
         
             
            post_install_message:
         
     | 
| 
       153 
154 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       154 
155 
     | 
    
         
             
            require_paths:
         
     | 
| 
         @@ -160,9 +161,9 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       160 
161 
     | 
    
         
             
                  version: '3.2'
         
     | 
| 
       161 
162 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       162 
163 
     | 
    
         
             
              requirements:
         
     | 
| 
       163 
     | 
    
         
            -
              - - " 
     | 
| 
      
 164 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       164 
165 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       165 
     | 
    
         
            -
                  version:  
     | 
| 
      
 166 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       166 
167 
     | 
    
         
             
            requirements: []
         
     | 
| 
       167 
168 
     | 
    
         
             
            rubygems_version: 3.4.10
         
     | 
| 
       168 
169 
     | 
    
         
             
            signing_key:
         
     |