pennmarc 1.2.1 → 1.2.3

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: b7c380943acc4f69a8a7555260d122aa77046b2ab62a2f73e1b3559740bd409b
4
- data.tar.gz: 0cc7fb1a1860265fb9bb2fcd637966d0d2972e6496a79545328649fa27fc1445
3
+ metadata.gz: 96396e62916d963919d655e236402c3ae40386dc9ac6078e135f2d9c41481375
4
+ data.tar.gz: 554416ba78ce36f00e15b240e988421096349966edc5617b6c5b1f3d573d19f8
5
5
  SHA512:
6
- metadata.gz: 0265623f80ef1573fdf1d5c2a6a62636291a8edc4e7d06350238b3133071b30cd01a58a9679047578546e856f166ac6df9a9e413c562fafff60eecfc6eb12b93
7
- data.tar.gz: aea9b53a26a97e7ff018fda2aacb6101bfb1c21585ac663fcbbdfba7084235de148643b9b03cc1478e230944ce3d45be641189f9852c6b88d7017da00c652bbc
6
+ metadata.gz: 7b64b529c5929690130cce0480a0e7fd99d32c435e5cf37daa058ab55838c28f246c8cb250f0ee9a4c2c243a118a6815add56f16df6c8bd54edd4b08022b7e36
7
+ data.tar.gz: fcb648bce5413f48f719050e528ed9f329618cbb5ca0af5e15aa02abd40f35fedb81e64d4614e8fcea2f32a6c6b5784ac7559c44a4771a1ef17321fc56d2b220
@@ -39,7 +39,7 @@ module PennMARC
39
39
  # TODO: use term hash here? pro/chr would be rejected...
40
40
  # TODO: should we care about punctuation in a search field? relator mapping?
41
41
  case subfield.code
42
- when '5', '6', '8' then next
42
+ when '5', '6', '8', '7' then next
43
43
  when 'a'
44
44
  # remove %PRO or PRO or %CHR or CHR
45
45
  # remove any ? at the end
@@ -249,7 +249,7 @@ module PennMARC
249
249
  vernacular: field.tag == '880' }
250
250
  field.each do |subfield|
251
251
  case subfield.code
252
- when '0', '6', '8', '5'
252
+ when '0', '6', '8', '5', '7'
253
253
  # explicitly ignore these subfields
254
254
  next
255
255
  when '1'
@@ -132,6 +132,8 @@ module PennMARC
132
132
  # @return [String] title value for sorting
133
133
  def sort(record)
134
134
  title_field = record.fields('245').first
135
+ return unless title_field.present?
136
+
135
137
  # attempt to get number of non-filing characters present, default to 0
136
138
  offset = if /^[0-9]$/.match?(title_field.indicator2)
137
139
  title_field.indicator2.to_i
@@ -1597,7 +1597,7 @@ vpfeatdvd:
1597
1597
  vpfolio:
1598
1598
  specific_location: Van Pelt - Folios
1599
1599
  library: Van Pelt-Dietrich Library Center
1600
- display: Van Pelt Library
1600
+ display: Van Pelt - Folios
1601
1601
  vpjuv:
1602
1602
  specific_location: Van Pelt - Notable Juvenile Books
1603
1603
  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.1'
4
+ VERSION = '1.2.3'
5
5
  end
@@ -14,7 +14,8 @@ describe 'PennMARC::Subject' do
14
14
  let(:fields) do
15
15
  [marc_field(tag: '600', indicator2: '5', subfields: { a: 'Excluded Canadian' }),
16
16
  marc_field(tag: '610', indicator2: '0', subfields: { a: 'University of Pennsylvania', b: 'Libraries' }),
17
- marc_field(tag: '691', indicator2: '7', subfields: { a: 'Van Pelt Library', '2': 'local' }),
17
+ marc_field(tag: '691', indicator2: '7', subfields: { a: 'Van Pelt Library', '2': 'local',
18
+ '7': 'Heading derived magically.' }),
18
19
  marc_field(tag: '696', indicator2: '4', subfields: { a: 'A Developer' }),
19
20
  marc_field(tag: '880', indicator2: '0', subfields: { a: 'Alt. Name', '6': '610' })]
20
21
  end
@@ -100,7 +101,7 @@ describe 'PennMARC::Subject' do
100
101
  [marc_field(tag: '650', indicator2: '7',
101
102
  subfields: {
102
103
  a: 'Libraries,', d: '22nd Century,', x: 'History.', e: 'relator',
103
- '2': 'fast', '0': 'http://fast.org/libraries'
104
+ '2': 'fast', '0': 'http://fast.org/libraries', '7': 'Heading derived magically.'
104
105
  })]
105
106
  end
106
107
 
@@ -117,6 +118,10 @@ describe 'PennMARC::Subject' do
117
118
  expect(values.first).not_to include 'relator'
118
119
  end
119
120
 
121
+ it 'excludes any values from ǂ7' do
122
+ expect(values.first).not_to include 'magically'
123
+ end
124
+
120
125
  it 'includes active dates from ǂd' do
121
126
  expect(values.first).to include '22nd Century'
122
127
  end
@@ -209,6 +209,18 @@ describe 'PennMARC::Title' do
209
209
  end
210
210
 
211
211
  describe '.sort' do
212
+ context 'with no 245' do
213
+ let(:record) do
214
+ # Simulate a miscoded record
215
+ marc_record fields: [marc_field(tag: '246', indicator1: '1', indicator2: '4',
216
+ subfields: { a: 'The horn concertos', c: 'Mozart' })]
217
+ end
218
+
219
+ it 'returns nil' do
220
+ expect(helper.sort(record)).to be_nil
221
+ end
222
+ end
223
+
212
224
  context 'with a record with a valid indicator2 value' do
213
225
  let(:record) do
214
226
  marc_record fields: [
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.1
4
+ version: 1.2.3
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-09-17 00:00:00.000000000 Z
15
+ date: 2024-10-29 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activesupport