pennmarc 1.2.1 → 1.2.3

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: 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