pennmarc 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc24e1fe4c30a2cf49fe06d466deaff8ac61677b69b3ce673cebfb3729282ed7
4
- data.tar.gz: cb7d013328a775f8c09d79cb4400374c4bb5ef5b97056e19c595d29707440469
3
+ metadata.gz: 21463a3d231e3ba853929bc03241d8e3c109c6191d3a5747c1a397aad40e454d
4
+ data.tar.gz: e747a26ee6ed508b13a3079acd2291d194d4a9a9bc4a984dcefd8145d5f76084
5
5
  SHA512:
6
- metadata.gz: 15de4dca697023774cdbde7cfd805fab906c21f56d39824539204b796e0e25cac86415c971a73ec7c8bd8e6c9983fa8f9edb0231cbb942ef8880dfd7c968ad6c
7
- data.tar.gz: a0d344dae1edbb7d7d4cd57ce698dd04007dfc30af9a981ff0db8708c5f1afe1b55347ec62ab4f544b51d5e187a95a945584d3c593f58f48804b691b384692b3
6
+ metadata.gz: ee0a42b85b4862caca7417176947497d63253d07818341e3ef483789554dfcf06eff4f658a89d44d865e7354f4dcae3e88e060cdd41c941e016de5d86e8ad365
7
+ data.tar.gz: ca200369654cb607e14ea1225ce785a90ca05da9f5fe9a3a7390748b997b4b5e423f26a1c832bfab14c339a493af39f2422171b647542f92a926e5c2a7405993
data/.gitlab-ci.yml CHANGED
@@ -1,65 +1,34 @@
1
+ ---
1
2
  include:
2
- - project: "devops/gitlab/ci-templates/general"
3
- file:
4
- - ".install_hashicorp_vault.yml"
5
- - ".vault_jwt_auth.yml"
6
- - project: "devops/gitlab/ci-templates/ruby"
7
- ref: "sans-dind"
8
- file:
9
- - ".rspec.yml"
10
- - ".rubocop.yml"
11
- - template: "Workflows/MergeRequest-Pipelines.gitlab-ci.yml"
3
+ - template: Jobs/Secret-Detection.gitlab-ci.yml
12
4
 
13
5
  stages:
14
- - test
15
- - deploy
6
+ - secret_check
7
+ - main_pipeline
16
8
 
17
- rspec_app_test:
18
- stage: test
19
- image: ruby:3.2.2
20
- before_script:
21
- - bundle install -j $(nproc)
22
- extends:
23
- - .rspec
24
- tags:
25
- - build
26
-
27
- rubocop_app_test:
28
- stage: test
29
- image: ruby:3.2.2
30
- before_script:
31
- - bundle install -j $(nproc)
32
- extends:
33
- - .rubocop
9
+ secret_detection:
10
+ stage: secret_check
11
+ allow_failure: false
12
+ artifacts:
13
+ paths:
14
+ - .pipeline.yml
15
+ expire_in: 1 day
34
16
  tags:
35
17
  - build
18
+ rules:
19
+ - when: always
36
20
 
37
- # This step was inspired from Gitlab's example of gem publication:
38
- # https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/gem-release.yml
39
- gem_publication:
40
- stage: deploy
41
- image: ruby:3.2.2
42
- variables:
43
- GEMSPEC_FILE: "${CI_PROJECT_NAME}.gemspec"
44
- before_script:
45
- - !reference [.install_hashicorp_vault, before_script]
46
- - !reference [.vault_jwt_auth, before_script]
47
- - export GEM_HOST_API_KEY="$(vault kv get -field=rubygems_api_key ${VAULT_KV_ENDPOINT}${ENVIRONMENT})"
48
- - |
49
- gem -v
50
- rm -f ./*.gem
51
- [ -f "${GEMSPEC_FILE}" ] || (echo "No ${GEMSPEC_FILE} file found!" && exit 1)
52
- - '[ -n "${GEM_HOST_API_KEY}" ] || (echo "GEM_HOST_API_KEY is not set!" && exit 1)'
53
- script:
54
- - GEM_FILE=$(echo "${CI_PROJECT_NAME}-${CI_COMMIT_TAG:1}.gem")
55
- - |
56
- gem build "${GEMSPEC_FILE}"
57
- [ -f "${GEM_FILE}" ] || (echo "No ${GEM_FILE} file found!" && exit 1)
58
- - '[ "${DISABLE_GEM_PUSH}" == "true" ] || gem push "${GEM_FILE}"'
21
+ main:
22
+ stage: main_pipeline
23
+ needs:
24
+ - secret_detection
25
+ allow_failure: false
26
+ trigger:
27
+ include:
28
+ - artifact: .pipeline.yml
29
+ job: secret_detection
30
+ strategy: depend
59
31
  rules:
60
- - if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+(\.[a-zA-Z0-9]+)?$/
61
- artifacts:
62
- paths:
63
- - "*.gem"
64
- tags:
65
- - deploy
32
+ - if: "$CI_MERGE_REQUEST_IID"
33
+ - if: "$CI_COMMIT_TAG"
34
+ - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
data/.pipeline.yml ADDED
@@ -0,0 +1,64 @@
1
+ include:
2
+ - project: "devops/gitlab/ci-templates/general"
3
+ file:
4
+ - ".install_hashicorp_vault.yml"
5
+ - ".vault_jwt_auth.yml"
6
+ - project: "devops/gitlab/ci-templates/ruby"
7
+ ref: "sans-dind"
8
+ file:
9
+ - ".rspec.yml"
10
+ - ".rubocop.yml"
11
+
12
+ stages:
13
+ - test
14
+ - deploy
15
+
16
+ rspec_app_test:
17
+ stage: test
18
+ image: ruby:3.2.2
19
+ before_script:
20
+ - bundle install -j $(nproc)
21
+ extends:
22
+ - .rspec
23
+ tags:
24
+ - build
25
+
26
+ rubocop_app_test:
27
+ stage: test
28
+ image: ruby:3.2.2
29
+ before_script:
30
+ - bundle install -j $(nproc)
31
+ extends:
32
+ - .rubocop
33
+ tags:
34
+ - build
35
+
36
+ # This step was inspired from Gitlab's example of gem publication:
37
+ # https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/gem-release.yml
38
+ gem_publication:
39
+ stage: deploy
40
+ image: ruby:3.2.2
41
+ variables:
42
+ GEMSPEC_FILE: "${CI_PROJECT_NAME}.gemspec"
43
+ before_script:
44
+ - !reference [.install_hashicorp_vault, before_script]
45
+ - !reference [.vault_jwt_auth, before_script]
46
+ - export GEM_HOST_API_KEY="$(vault kv get -field=rubygems_api_key ${VAULT_KV_ENDPOINT}${ENVIRONMENT})"
47
+ - |
48
+ gem -v
49
+ rm -f ./*.gem
50
+ [ -f "${GEMSPEC_FILE}" ] || (echo "No ${GEMSPEC_FILE} file found!" && exit 1)
51
+ - '[ -n "${GEM_HOST_API_KEY}" ] || (echo "GEM_HOST_API_KEY is not set!" && exit 1)'
52
+ script:
53
+ - GEM_FILE=$(echo "${CI_PROJECT_NAME}-${CI_COMMIT_TAG:1}.gem")
54
+ - |
55
+ gem build "${GEMSPEC_FILE}"
56
+ [ -f "${GEM_FILE}" ] || (echo "No ${GEM_FILE} file found!" && exit 1)
57
+ - '[ "${DISABLE_GEM_PUSH}" == "true" ] || gem push "${GEM_FILE}"'
58
+ rules:
59
+ - if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+(\.[a-zA-Z0-9]+)?$/
60
+ artifacts:
61
+ paths:
62
+ - "*.gem"
63
+ tags:
64
+ - deploy
@@ -21,6 +21,16 @@ module PennMARC
21
21
  }.uniq
22
22
  end
23
23
 
24
+ # Get "Contained in" values from {https://www.oclc.org/bibformats/en/7xx/773.html MARC 773}
25
+ # subfield g for related parts.
26
+ # @param record [MARC::Record]
27
+ # @return [Array<String>] related parts values for display
28
+ def contained_in_related_parts_show(record)
29
+ record.fields('773').map { |field|
30
+ join_subfields(field, &subfield_in?(%w[g]))
31
+ }.uniq
32
+ end
33
+
24
34
  # Get "chronology" information from specially-prefixed 650 (subject) fields
25
35
  # @todo why do we stuff chronology data in a 650 field?
26
36
  # @param record [MARC::Record]
@@ -840,6 +840,10 @@ mideastres:
840
840
  - Van Pelt-Dietrich Library Center
841
841
  - Reserve
842
842
  display: Van Pelt - Middle East Seminar Reserve
843
+ mscirc:
844
+ specific_location: Penn Museum Library - Circulation
845
+ library: Penn Museum Library
846
+ display: Penn Museum Library - Circulation
843
847
  muse:
844
848
  specific_location: Penn Museum Library
845
849
  library: Penn Museum Library
@@ -867,6 +871,14 @@ museegypov:
867
871
  specific_location: Penn Museum Library - Egyptian Oversize
868
872
  library: Penn Museum Library
869
873
  display: Penn Museum Library - Egyptian Oversize
874
+ museexhi:
875
+ specific_location: Penn Museum Library - Exhibition
876
+ library: Penn Museum Library
877
+ display: Penn Museum Library - Exhibition
878
+ musefolio:
879
+ specific_location: Penn Museum Library - Folio
880
+ library: Penn Museum Library
881
+ display: Penn Museum Library - Folio
870
882
  musekolb:
871
883
  specific_location: Penn Museum Library - Kolb
872
884
  library: Penn Museum Library
@@ -882,10 +894,14 @@ musemedia:
882
894
  specific_location: Penn Museum Library - Media
883
895
  library: Penn Museum Library
884
896
  display: Penn Museum Library - Media
885
- musenewbk:
897
+ musenewbks:
886
898
  specific_location: Penn Museum Library - New Books Display
887
899
  library: Penn Museum Library
888
900
  display: Penn Museum Library - New Books Display
901
+ museover:
902
+ specific_location: Penn Museum Library - Oversize
903
+ library: Penn Museum Library
904
+ display: Penn Museum Library - Oversize
889
905
  muserefe:
890
906
  specific_location: Penn Museum Library - Reference
891
907
  library: Penn Museum Library
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PennMARC
4
- VERSION = '1.2.4'
4
+ VERSION = '1.2.5'
5
5
  end
@@ -16,6 +16,16 @@ describe 'PennMARC::Relation' do
16
16
  end
17
17
  end
18
18
 
19
+ describe '.contained_in_related_parts_show' do
20
+ let(:fields) do
21
+ [marc_field(tag: '773', subfields: { g: 'Vol. 24, pt. B no. 9 (Sept. 1993)', q: '24:B:9<235' })]
22
+ end
23
+
24
+ it 'returns only the specified subfields' do
25
+ expect(helper.contained_in_related_parts_show(record)).to eq ['Vol. 24, pt. B no. 9 (Sept. 1993)']
26
+ end
27
+ end
28
+
19
29
  describe '.chronology_show' do
20
30
  let(:fields) do
21
31
  [marc_field(tag: '650', indicator2: '4', subfields: { a: 'CHR Heading' }),
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.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Kanning
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2024-12-03 00:00:00.000000000 Z
15
+ date: 2024-12-17 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activesupport
@@ -81,6 +81,7 @@ files:
81
81
  - ".gitignore"
82
82
  - ".gitlab-ci.yml"
83
83
  - ".gitleaks.toml"
84
+ - ".pipeline.yml"
84
85
  - ".rspec"
85
86
  - ".rubocop.yml"
86
87
  - ".rubocop_todo.yml"