pennmarc 1.0.1 → 1.0.2

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: e574f1fae4f59435df3bf467da310ae7e426d82c2fe54ae2321ad326c05e5e99
4
- data.tar.gz: de545e5a150b26c73e814e36b167bb688d267a97205cf4cdbab15dfd5c3225a8
3
+ metadata.gz: 33527bf43532170690b9b591097fb03f854130b3383debfafe931417d0394f52
4
+ data.tar.gz: a18a5be08df6d7b74d2aaa61275cdecdedec6caa4b5e8b2b81c99e91411ce093
5
5
  SHA512:
6
- metadata.gz: 3c3fc981f5999eaca710a54fa3d247f2d01cc8183e13212151afab0cbb5b37f93531cbd264b22d1d4f30ef730b800efe38039b4bfc42a44cd28778c06f0cde3f
7
- data.tar.gz: 729f0f80fd9d9ade7d1ae1085610cd85b8ab31beb1245efcaee246a18c01238abd5adc18dcf995f624448d518f4e36222a71c972d00c537c6367229f7d8d35c6
6
+ metadata.gz: 627a4da06351037f520bc02b0a9fd61ce6cfdec35c563f2b29e3c1c01b4ad76766f155630cafe680b010783ea4f4c285df2d499fd784b7ee4f3cb4948cd421dd
7
+ data.tar.gz: c966233bb00009a14babc5bc92f0399e75640e886f7c32d176fea8983813aca8936d0e8fab98576a797afaf0b60c5f24268c2ae4e2d8cca31900e590db0a9bc6
data/.rubocop.yml CHANGED
@@ -2,3 +2,6 @@ inherit_from: .rubocop_todo.yml
2
2
 
3
3
  inherit_gem:
4
4
  upennlib-rubocop: upennlib_rubocop_defaults.yml
5
+
6
+ Rails:
7
+ Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -1,11 +1,35 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config --auto-gen-only-exclude --exclude-limit 10000`
3
- # on 2023-08-14 17:52:48 UTC using RuboCop version 1.51.0.
3
+ # on 2023-08-25 13:55:25 UTC using RuboCop version 1.51.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ # Offense count: 2
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
12
+ # SupportedStyles: with_first_argument, with_fixed_indentation
13
+ Layout/ArgumentAlignment:
14
+ Exclude:
15
+ - 'spec/lib/pennmarc/helpers/series_spec.rb'
16
+
17
+ # Offense count: 1
18
+ # This cop supports safe autocorrection (--autocorrect).
19
+ # Configuration parameters: EnforcedStyle.
20
+ # SupportedStyles: empty_lines, no_empty_lines
21
+ Layout/EmptyLinesAroundBlockBody:
22
+ Exclude:
23
+ - 'spec/lib/pennmarc/helpers/identifer_spec.rb'
24
+
25
+ # Offense count: 1
26
+ # This cop supports safe autocorrection (--autocorrect).
27
+ # Configuration parameters: EnforcedStyle.
28
+ # SupportedStyles: final_newline, final_blank_line
29
+ Layout/TrailingEmptyLines:
30
+ Exclude:
31
+ - 'spec/lib/pennmarc/helpers/identifer_spec.rb'
32
+
9
33
  # Offense count: 22
10
34
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
11
35
  Metrics/AbcSize:
@@ -86,7 +110,7 @@ Metrics/PerceivedComplexity:
86
110
  - 'lib/pennmarc/helpers/title.rb'
87
111
  - 'lib/pennmarc/util.rb'
88
112
 
89
- # Offense count: 2
113
+ # Offense count: 4
90
114
  # This cop supports safe autocorrection (--autocorrect).
91
115
  # Configuration parameters: EnforcedStyle, BlockForwardingName.
92
116
  # SupportedStyles: anonymous, explicit
@@ -104,7 +128,7 @@ Naming/PredicateName:
104
128
  Exclude:
105
129
  - 'lib/pennmarc/helpers/relation.rb'
106
130
 
107
- # Offense count: 2
131
+ # Offense count: 1
108
132
  # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
109
133
  # SupportedStyles: snake_case, normalcase, non_integer
110
134
  # AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
@@ -135,9 +159,9 @@ RSpec/NestedGroups:
135
159
  - 'spec/lib/pennmarc/helpers/format_spec.rb'
136
160
 
137
161
  # Offense count: 2
138
- # This cop supports unsafe autocorrection (--autocorrect-all).
139
- # Configuration parameters: Include.
140
- # Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
141
- Rails/Output:
162
+ # This cop supports safe autocorrection (--autocorrect).
163
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
164
+ # URISchemes: http, https
165
+ Layout/LineLength:
142
166
  Exclude:
143
- - 'lib/pennmarc/helpers/date.rb'
167
+ - 'spec/lib/pennmarc/helpers/creator_spec.rb'
data/Gemfile.lock CHANGED
@@ -21,6 +21,8 @@ GEM
21
21
  minitest (5.18.0)
22
22
  nokogiri (1.15.2-arm64-darwin)
23
23
  racc (~> 1.4)
24
+ nokogiri (1.15.2-x64-mingw-ucrt)
25
+ racc (~> 1.4)
24
26
  nokogiri (1.15.2-x86_64-linux)
25
27
  racc (~> 1.4)
26
28
  parallel (1.23.0)
@@ -101,6 +103,7 @@ GEM
101
103
  PLATFORMS
102
104
  arm64-darwin-21
103
105
  arm64-darwin-22
106
+ x64-mingw-ucrt
104
107
  x86_64-linux
105
108
 
106
109
  DEPENDENCIES
@@ -33,14 +33,12 @@ module PennMARC
33
33
  #
34
34
  # @param [MARC::Record] record
35
35
  # @return [Array<String>]
36
- # @todo look into z subfield for 020 field, should we show cancelled isbn?
37
36
  def isbn_show(record)
38
37
  isbn_values = record.fields('020').filter_map do |field|
39
- joined_isbn = join_subfields(field, &subfield_in?(%w[a z]))
38
+ joined_isbn = join_subfields(field, &subfield_in?(%w[a]))
40
39
  joined_isbn.presence
41
40
  end
42
- isbn_values += linked_alternate(record, '020', &subfield_in?(%w[a z]))
43
- isbn_values
41
+ isbn_values + linked_alternate(record, '020', &subfield_in?(%w[a]))
44
42
  end
45
43
 
46
44
  # Get ISSN values for display from the {https://www.oclc.org/bibformats/en/0xx/022.html 022 field} and related
@@ -50,11 +48,10 @@ module PennMARC
50
48
  # @return [Array<String>]
51
49
  def issn_show(record)
52
50
  issn_values = record.fields('022').filter_map do |field|
53
- joined_issn = join_subfields(field, &subfield_in?(%w[a z]))
51
+ joined_issn = join_subfields(field, &subfield_in?(%w[a]))
54
52
  joined_issn.presence
55
53
  end
56
- issn_values += linked_alternate(record, '022', &subfield_in?(%w[a z]))
57
- issn_values
54
+ issn_values + linked_alternate(record, '022', &subfield_in?(%w[a]))
58
55
  end
59
56
 
60
57
  # Get numeric OCLC ID of first {https://www.oclc.org/bibformats/en/0xx/035.html 035 field}
@@ -85,17 +82,22 @@ module PennMARC
85
82
 
86
83
  # Get publisher issued identifiers from fields {https://www.oclc.org/bibformats/en/0xx/024.html 024},
87
84
  # {https://www.oclc.org/bibformats/en/0xx/024.html 028}, and related
88
- # {https://www.oclc.org/bibformats/en/8xx/880.html 880 field}.
85
+ # {https://www.oclc.org/bibformats/en/8xx/880.html 880 field}. We do not return DOI values stored in 024 ǂ2,
86
+ # see {PennMARC::Identifier.doi_show} for parsing DOI values.
89
87
  #
90
88
  # @param [MARC::Record] record
91
89
  # @return [Array<string>]
92
90
  def publisher_number_show(record)
93
- publisher_numbers = record.fields(%w[024 028]).filter_map do |field|
94
- joined_identifiers = join_subfields(field, &subfield_not_in?(%w[5 6]))
95
- joined_identifiers.presence
91
+ record.fields(%w[024 028 880]).filter_map do |field|
92
+ next if field.tag == '880' && subfield_value_not_in?(field, '6', %w[024 028])
93
+
94
+ # do not return doi values from 024 ǂ2
95
+ if field.tag == '024' && subfield_value_in?(field, '2', %w[doi])
96
+ join_subfields(field, &subfield_not_in?(%w[a 2 5 6])).presence
97
+ else
98
+ join_subfields(field, &subfield_not_in?(%w[5 6])).presence
99
+ end
96
100
  end
97
- publisher_numbers += linked_alternate(record, %w[024 028], &subfield_not_in?(%w[5 6]))
98
- publisher_numbers
99
101
  end
100
102
 
101
103
  # Get publisher issued identifiers for searching of a record. Values extracted from fields
@@ -119,6 +121,21 @@ module PennMARC
119
121
  end
120
122
  end
121
123
 
124
+ # Retrieve DOI values stored in {https://www.oclc.org/bibformats/en/0xx/024.html 024}.
125
+ # Penn MARC records give the first indicator a value of '7' and ǂ2 a value of 'doi' to denote that ǂa is a doi.
126
+ # @param [MARC::Record] record
127
+ # @return [Array<String>]
128
+ def doi_show(record)
129
+ record.fields('024').filter_map do |field|
130
+ # skip unless indicator1 is '7'
131
+ next unless field.indicator1.in?(%w[7])
132
+ # skip unless ǂ2 is the string literal 'doi'
133
+ next unless subfield_value_in?(field, '2', %w[doi])
134
+
135
+ join_subfields(field, &subfield_in?(%w[a]))
136
+ end
137
+ end
138
+
122
139
  private
123
140
 
124
141
  # Determine if subfield 'a' is an OCLC id.
@@ -126,11 +143,11 @@ module PennMARC
126
143
  # @param [MARC::Subfield]
127
144
  # @return [TrueClass, FalseClass]
128
145
  def subfield_a_is_oclc?(subfield)
129
- subfield.code == 'a' && subfield.value =~ /^\(OCoLC\).*/
146
+ subfield.code == 'a' && (subfield.value =~ /^\(OCoLC\).*/).present?
130
147
  end
131
148
 
132
149
  # Normalize isbn value using {https://github.com/billdueber/library_stdnums library_stdnums gem}.
133
- # Converts ISBN10 (ten-digit) to validated ISBN13 (thriteen-digit) and returns both values. If passed
150
+ # Converts ISBN10 (ten-digit) to validated ISBN13 (thirteen-digit) and returns both values. If passed
134
151
  # ISBN13 parameter, only returns validated ISBN13 value.
135
152
  #
136
153
  # @param [String] isbn
@@ -11,8 +11,6 @@ module PennMARC
11
11
  # {https://www.oclc.org/bibformats/en/5xx/550.html 550}, {https://www.oclc.org/bibformats/en/5xx/580.html 580},
12
12
  # {https://www.oclc.org/bibformats/en/5xx/586.html 586}, {https://www.oclc.org/bibformats/en/5xx/588.html 588},
13
13
  # and their linked alternates.
14
- # @todo legacy implementation used conditional to separate join logic for 588 field. However, this doesn't seem
15
- # necessary because 588 only has subfields 'a', '5', '6', and '8'. Do we need to look into this?
16
14
  # @param [MARC::Record] record
17
15
  # @return [Array<String>]
18
16
  def notes_show(record)
@@ -4,7 +4,6 @@ module PennMARC
4
4
  # Do Series and series-related field processing. Many of these fields are added entries that are justified by
5
5
  # corresponding series statements (usually 490). These fields provide information about the published series in which
6
6
  # a book, encoded finding aid, or other published work has appeared
7
- # @todo We may want to include 410 in the display tags, since it is included in references below.
8
7
  class Series < Helper
9
8
  class << self
10
9
  # 800 - Series Added Entry-Personal Name - https://www.loc.gov/marc/bibliographic/bd800.html
@@ -16,7 +15,7 @@ module PennMARC
16
15
  # 411 - Series Statement/Added Entry Meeting Name - https://www.loc.gov/marc/bibliographic/bd411.html
17
16
  # 440 - Series Statement/Added Entry-Title - https://www.loc.gov/marc/bibliographic/bd440.html
18
17
  # 490 - Series Statement - https://www.loc.gov/marc/bibliographic/bd490.html
19
- DISPLAY_TAGS = %w[800 810 811 830 400 411 440 490].freeze
18
+ DISPLAY_TAGS = %w[800 810 811 830 400 410 411 440 490].freeze
20
19
 
21
20
  # Fields for display that pertain to series information.
22
21
  # @param [MARC::Record] record
@@ -168,7 +168,8 @@ module PennMARC
168
168
  def format_term(type:, term:)
169
169
  return unless type.in? %i[facet display]
170
170
 
171
- normalize_single_subfield(term[:parts].first) if term[:count] == 1
171
+ # attempt to handle poorly coded record
172
+ normalize_single_subfield(term[:parts].first) if term[:count] == 1 && term[:parts].first.present?
172
173
 
173
174
  case type.to_sym
174
175
  when :facet
@@ -89,7 +89,7 @@ module PennMARC
89
89
  end
90
90
  raw_title = join_subfields(title_field, &subfield_in?(['a'])) # get title from subfield a
91
91
  value = if offset.between?(1, 9)
92
- { prefix: raw_title[0..offset - 1].strip, filing: raw_title[offset..].strip }
92
+ { prefix: raw_title[0..offset - 1]&.strip, filing: raw_title[offset..]&.strip }
93
93
  elsif raw_title.present?
94
94
  handle_bracket_prefix raw_title
95
95
  else
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PennMARC
4
+ VERSION = '1.0.2'
5
+ end
data/pennmarc.gemspec CHANGED
@@ -1,8 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'pennmarc/version'
6
+
3
7
  Gem::Specification.new do |s|
4
8
  s.name = 'pennmarc'
5
- s.version = '1.0.1'
9
+ s.version = PennMARC::VERSION
6
10
  s.summary = 'Penn Libraries Catalog MARC parsing wisdom for cross-project usage'
7
11
  s.description = 'This gem provides methods for parsing a Penn Libraries MARCXML record into string, array and date
8
12
  objects for use in discovery or preservation applications.'
@@ -16,13 +16,14 @@ describe 'PennMARC::Identifier' do
16
16
  describe '.isxn_search' do
17
17
  let(:record) do
18
18
  marc_record fields: [
19
- marc_field(tag: '020', subfields: { a: '9781594205071', z: '1594205078' }),
20
- marc_field(tag: '022', subfields: { a: '0008-6533', l: '0300-7162', z: '0008-6533' })
19
+ marc_field(tag: '020', subfields: { a: '9781594205071', z: '1555975275' }),
20
+ marc_field(tag: '022', subfields: { a: '0008-6533', l: '0300-7162', z: '0799-5946 ' })
21
21
  ]
22
22
  end
23
23
 
24
24
  it 'returns expected search values' do
25
- expect(helper.isxn_search(record)).to contain_exactly('9781594205071', '1594205078', '0300-7162', '0008-6533')
25
+ expect(helper.isxn_search(record)).to contain_exactly('9781594205071', '1555975275', '9781555975272',
26
+ '1594205078', '0300-7162', '0008-6533', '0799-5946 ')
26
27
  end
27
28
 
28
29
  it 'converts ISBN10 values to ISBN13' do
@@ -40,9 +41,9 @@ describe 'PennMARC::Identifier' do
40
41
  ]
41
42
  end
42
43
 
43
- it 'returns expected show values' do
44
- expect(helper.isbn_show(record)).to contain_exactly('9781594205071 1594205078', '0805073698 9780735222786',
45
- '0735222789 9780805073690')
44
+ it 'returns expected ǂa values' do
45
+ expect(helper.isbn_show(record)).to contain_exactly('9781594205071', '0805073698',
46
+ '0735222789')
46
47
  end
47
48
  end
48
49
 
@@ -55,9 +56,9 @@ describe 'PennMARC::Identifier' do
55
56
  ]
56
57
  end
57
58
 
58
- it 'returns expected show values' do
59
- expect(helper.issn_show(record)).to contain_exactly('0008-6533 0008-6533', '2470-6302 1534-6714',
60
- '1080-6512 2213-4360')
59
+ it 'returns ǂa values' do
60
+ expect(helper.issn_show(record)).to contain_exactly('0008-6533', '2470-6302',
61
+ '1080-6512')
61
62
  end
62
63
  end
63
64
 
@@ -79,9 +80,11 @@ describe 'PennMARC::Identifier' do
79
80
  let(:record) do
80
81
  marc_record fields: [
81
82
  marc_field(tag: '024', subfields: { a: '602537854325', '6': '880-01' }),
83
+ marc_field(tag: '024', subfields: { a: '10.18574/9781479842865', '2': 'doi' }),
82
84
  marc_field(tag: '028', subfields: { a: 'B002086600', b: 'Island Def Jam Music Group', '6': '880-01' }),
83
85
  marc_field(tag: '880', subfields: { a: '523458735206', '6': '024' }),
84
- marc_field(tag: '880', subfields: { a: '006680200B', b: 'Island', '6': '028' })
86
+ marc_field(tag: '880', subfields: { a: '006680200B', b: 'Island', '6': '028' }),
87
+ marc_field(tag: '880', subfields: { a: '006680200B', b: 'Island', '6': '021' })
85
88
  ]
86
89
  end
87
90
 
@@ -90,18 +93,26 @@ describe 'PennMARC::Identifier' do
90
93
  'B002086600 Island Def Jam Music Group',
91
94
  '523458735206', '006680200B Island')
92
95
  end
96
+
97
+ it 'does not return DOI values' do
98
+ expect(helper.publisher_number_show(record)).not_to include('10.18574/9781479842865')
99
+ expect(helper.publisher_number_show(record)).not_to include('doi')
100
+
101
+ end
93
102
  end
94
103
 
95
104
  describe '.publisher_number_search' do
96
105
  let(:record) do
97
106
  marc_record fields: [
98
- marc_field(tag: '024', subfields: { a: '602537854325' }),
107
+ marc_field(tag: '024', subfields: { a: '602537854325', b: 'exclude' }),
108
+ marc_field(tag: '024', subfields: { a: '10.18574/9781479842865', '2': 'doi' }),
99
109
  marc_field(tag: '028', subfields: { a: 'B002086600', b: 'Island Def Jam Music Group' })
100
110
  ]
101
111
  end
102
112
 
103
- it 'returns expected search values' do
104
- expect(helper.publisher_number_search(record)).to contain_exactly('602537854325', 'B002086600')
113
+ it 'returns publisher numbers from 024/028 ǂa and DOI values in 024 ǂ2' do
114
+ expect(helper.publisher_number_search(record)).to contain_exactly('10.18574/9781479842865', '602537854325',
115
+ 'B002086600')
105
116
  end
106
117
  end
107
118
 
@@ -117,4 +128,22 @@ describe 'PennMARC::Identifier' do
117
128
  expect(helper.fingerprint_show(record)).to contain_exactly('dete nkck vess lodo Anno Domini MDCXXXVI 3')
118
129
  end
119
130
  end
120
- end
131
+
132
+ describe '.doi_show' do
133
+ let(:record) do
134
+ marc_record fields: [
135
+ marc_field(tag: '024', indicator1: '7', subfields: { a: '10.1038/sdata.2016.18 ', '2': 'doi' }),
136
+ marc_field(tag: '024', indicator1: '7', subfields: { a: '10.18574/9781479842865', '2': 'doi' }),
137
+ marc_field(tag: '024', indicator1: '7',
138
+ subfields: { a: '10.1016.12.31/nature.S0735-1097(98)2000/12?/31/34:7-7', '2': 'doi' }),
139
+ marc_field(tag: '024', indicator1: '7', subfields: { a: 'excluded', '2': 'non doi' }),
140
+ marc_field(tag: '024', indicator1: '0', subfields: { a: 'excluded', '2': 'doi' })
141
+ ]
142
+ end
143
+
144
+ it 'returns valid DOI values' do
145
+ expect(helper.doi_show(record)).to contain_exactly('10.1016.12.31/nature.S0735-1097(98)2000/12?/31/34:7-7',
146
+ '10.1038/sdata.2016.18', '10.18574/9781479842865')
147
+ end
148
+ end
149
+ end
@@ -6,7 +6,8 @@ describe 'PennMARC::Series' do
6
6
  let(:helper) { PennMARC::Series }
7
7
  let(:mapping) { { aut: 'Author' } }
8
8
  let(:record) do
9
- marc_record fields: [marc_field(tag: '490', subfields: { a: 'Teachings of the feathered pillow' }),
9
+ marc_record fields: [marc_field(tag: '410', subfields: { a: 'Evil Giant Megacorp' }),
10
+ marc_field(tag: '490', subfields: { a: 'Teachings of the feathered pillow' }),
10
11
  marc_field(tag: '880', subfields: { '6': '490', a: 'Учения пернатой подушки' }),
11
12
  marc_field(tag: '800', subfields: { a: 'Bean Bagatolvski', d: '1997-', v: 'bk. 1' }),
12
13
  marc_field(tag: '780', subfields: { a: 'National Comfort Association' }),
@@ -20,7 +21,7 @@ describe 'PennMARC::Series' do
20
21
  it 'returns the series' do
21
22
  expect(helper.show(record, relator_map: mapping)).to contain_exactly('Bean Bagatolvski 1997- bk. 1',
22
23
  'Teachings of the feathered pillow',
23
- 'Учения пернатой подушки')
24
+ 'Учения пернатой подушки', 'Evil Giant Megacorp')
24
25
  end
25
26
  end
26
27
 
@@ -32,7 +33,7 @@ describe 'PennMARC::Series' do
32
33
 
33
34
  describe '.search' do
34
35
  it 'returns the search values' do
35
- expect(helper.search(record)).to contain_exactly('Bean Bagatolvski 1997- bk. 1')
36
+ expect(helper.search(record)).to contain_exactly('Bean Bagatolvski 1997- bk. 1', 'Evil Giant Megacorp')
36
37
  end
37
38
 
38
39
  it 'returns an empty array if no values are found' do
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pennmarc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Kanning
8
8
  - Amrey Mathurin
9
9
  - Patrick Perkins
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-08-15 00:00:00.000000000 Z
13
+ date: 2023-10-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -112,6 +112,7 @@ files:
112
112
  - lib/pennmarc/mappings/relator.yml
113
113
  - lib/pennmarc/parser.rb
114
114
  - lib/pennmarc/util.rb
115
+ - lib/pennmarc/version.rb
115
116
  - pennmarc.gemspec
116
117
  - spec/fixtures/marcxml/test.xml
117
118
  - spec/lib/pennmarc/helpers/citation_spec.rb
@@ -139,7 +140,7 @@ licenses:
139
140
  - MIT
140
141
  metadata:
141
142
  rubygems_mfa_required: 'true'
142
- post_install_message:
143
+ post_install_message:
143
144
  rdoc_options: []
144
145
  require_paths:
145
146
  - lib
@@ -155,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
156
  version: '0'
156
157
  requirements: []
157
158
  rubygems_version: 3.4.10
158
- signing_key:
159
+ signing_key:
159
160
  specification_version: 4
160
161
  summary: Penn Libraries Catalog MARC parsing wisdom for cross-project usage
161
162
  test_files: []