pennmarc 1.2.7 → 1.2.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 920cef15f1cac246074afedbe31a0f456ee81d9e9bcbb04c0dde024901d925db
4
- data.tar.gz: edf42bff8a460373147e52e4cc3bf1c277655486635952ebf6604bc83fab5912
3
+ metadata.gz: d760f01c8e5f5d4f5a4c284f8e758b44ecb9f0f8243c611ba758b6c4c714d375
4
+ data.tar.gz: f1059dad28e535ded5669c5c20a34a945fa15c3ee6ad769825bb7b8c5913e4f5
5
5
  SHA512:
6
- metadata.gz: 614f6a26980656a8030bdaf28b0c901a9d5a841e0bad65b1e0455e9f09b3071e6c1f379ea3a54c4267c66403efdef3de0e7be4862c9e05c84d3d1f228921ccd8
7
- data.tar.gz: 6b85c2040e4b9dbb0bb95b5e5d0914ada840399338246b54ee94b338ebb7c7c58dd32a22d9ae425337b6ce7074c03124e826a7b4b117bc40cc3d05405cfe2e29
6
+ metadata.gz: 151cc1278e5768c883c932d86278d8f45f70aade214179d073e48b5c504600d4c8b15cbd24afa303853f1b0346752c808cdf96c7e57cbb93d7120ffbf092a298
7
+ data.tar.gz: 396128b00dab208a1954cab9aa34291fd46b020e942d2a3196507c5a110335f3e216c784c31cc677912ab65d344d6a02e6a887ef821bd96eb69885632e73f172
@@ -21,16 +21,6 @@ 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
-
34
24
  # Get "chronology" information from specially-prefixed 650 (subject) fields
35
25
  # @todo why do we stuff chronology data in a 650 field?
36
26
  # @param record [MARC::Record]
@@ -123,7 +123,7 @@ module PennMARC
123
123
  }.first
124
124
  return unless field
125
125
 
126
- values = title_values(field)
126
+ values = title_values(field, include_subfield_c: true)
127
127
  [format_title(values[:title_or_form]), values[:punctuation], values[:other_info]].compact_blank.join(' ')
128
128
  end
129
129
 
@@ -253,17 +253,17 @@ module PennMARC
253
253
 
254
254
  # Extract title values from provided 245 subfields. Main title components are the following:
255
255
  # - title_or_form: subfields a and k
256
- # - inclusive_dates: subfield c
257
- # - other_info: subfields b, n, and p
256
+ # - other_info: subfields b, n, and p (for alternate title, include subfield c)
258
257
  # https://www.oclc.org/bibformats/en/2xx/245.html
259
258
  #
260
259
  # @param field [MARC::Field]
260
+ # @param include_subfield_c [Boolean]
261
261
  # @return [Hash] title values
262
- def title_values(field)
262
+ def title_values(field, include_subfield_c: false)
263
263
  title_or_form = field.find_all(&subfield_in?(%w[a k]))
264
264
  .map { |sf| trim_trailing(:comma, trim_trailing(:slash, sf.value).rstrip) }
265
265
  .first || ''
266
- other_info = field.find_all(&subfield_in?(%w[b n p]))
266
+ other_info = field.find_all(&subfield_in?(include_subfield_c ? %w[b c n p] : %w[b n p]))
267
267
  .map { |sf| trim_trailing(:slash, sf.value) }
268
268
  .join(' ')
269
269
  title_punctuation = title_or_form.last
@@ -1628,6 +1628,10 @@ vpfolio:
1628
1628
  specific_location: Van Pelt - Folios
1629
1629
  library: Van Pelt-Dietrich Library Center
1630
1630
  display: Van Pelt - Folios
1631
+ vpglobalin:
1632
+ specific_location: Van Pelt - Global Indigeneity Display
1633
+ library: Van Pelt-Dietrich Library Center
1634
+ display: Van Pelt - Global Indigeneity Display -- First Floor, Near New Books
1631
1635
  vpjuv:
1632
1636
  specific_location: Van Pelt - Notable Juvenile Books
1633
1637
  library: Van Pelt-Dietrich Library Center
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PennMARC
4
- VERSION = '1.2.7'
4
+ VERSION = '1.2.9'
5
5
  end
@@ -16,16 +16,6 @@ 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
-
29
19
  describe '.chronology_show' do
30
20
  let(:fields) do
31
21
  [marc_field(tag: '650', indicator2: '4', subfields: { a: 'CHR Heading' }),
@@ -117,6 +117,15 @@ describe 'PennMARC::Title' do
117
117
  end
118
118
  end
119
119
 
120
+ context 'with ǂa, ǂc and ǂn defined' do
121
+ let(:fields) { [marc_field(tag: '245', subfields: subfields)] }
122
+ let(:subfields) { { a: 'Five Decades of MARC usage', c: 'Should not be shown', n: 'Part One' } }
123
+
124
+ it 'returns single title value with text from ǂa and ǂn but not #c' do
125
+ expect(helper.show(record)).to eq 'Five Decades of MARC usage Part One'
126
+ end
127
+ end
128
+
120
129
  context 'with no ǂa but a ǂk and ǂn defined' do
121
130
  let(:fields) { [marc_field(tag: '245', subfields: subfields)] }
122
131
  let(:subfields) { { k: 'journals', n: 'Part One' } }
@@ -182,17 +191,29 @@ describe 'PennMARC::Title' do
182
191
  end
183
192
 
184
193
  describe '.alternate_show' do
185
- let(:fields) do
186
- [marc_field(tag: '245', subfields: { k: 'Letters', b: 'to Lewis Mumford. ' }),
187
- marc_field(tag: '880', subfields: { '6': '245', k: 'Lettres', b: 'à Lewis Mumford.' })]
188
- end
189
-
190
194
  context 'with subfields ǂk and ǂb' do
195
+ let(:fields) do
196
+ [marc_field(tag: '245', subfields: { k: 'Letters', b: 'to Lewis Mumford. ' }),
197
+ marc_field(tag: '880', subfields: { '6': '245', k: 'Lettres', b: 'à Lewis Mumford.' })]
198
+ end
199
+
191
200
  it 'returns alternate title values' do
192
201
  expect(helper.alternate_show(record)).to eq 'Lettres à Lewis Mumford.'
193
202
  end
194
203
  end
195
204
 
205
+ context 'with subfields ǂk, ǂb and ǂc' do
206
+ let(:fields) do
207
+ [marc_field(tag: '245', subfields: { k: 'Letters', b: 'to Lewis Mumford. ' }),
208
+ marc_field(tag: '880', subfields: { '6': '245', k: 'Lettres',
209
+ b: 'à Lewis Mumford.', c: 'Additional copy' })]
210
+ end
211
+
212
+ it 'returns alternate title values' do
213
+ expect(helper.alternate_show(record)).to eq 'Lettres à Lewis Mumford. Additional copy'
214
+ end
215
+ end
216
+
196
217
  context 'when 880 field is not present' do
197
218
  let(:fields) do
198
219
  [marc_field(tag: '245', subfields: { k: 'Letters', b: 'to Lewis Mumford. ' })]
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.7
4
+ version: 1.2.9
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-23 00:00:00.000000000 Z
15
+ date: 2025-01-14 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activesupport