pennmarc 0.0.2 → 1.0.1
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 +4 -4
- data/.rubocop.yml +4 -0
- data/.rubocop_todo.yml +143 -0
- data/Gemfile +1 -1
- data/README.md +12 -2
- data/lib/pennmarc/helpers/creator.rb +59 -21
- data/lib/pennmarc/helpers/database.rb +8 -8
- data/lib/pennmarc/helpers/date.rb +16 -15
- data/lib/pennmarc/helpers/edition.rb +25 -20
- data/lib/pennmarc/helpers/format.rb +15 -4
- data/lib/pennmarc/helpers/genre.rb +13 -11
- data/lib/pennmarc/helpers/helper.rb +1 -0
- data/lib/pennmarc/helpers/identifier.rb +16 -7
- data/lib/pennmarc/helpers/language.rb +3 -3
- data/lib/pennmarc/helpers/link.rb +6 -0
- data/lib/pennmarc/helpers/location.rb +8 -8
- data/lib/pennmarc/helpers/note.rb +52 -2
- data/lib/pennmarc/helpers/relation.rb +4 -4
- data/lib/pennmarc/helpers/series.rb +171 -85
- data/lib/pennmarc/helpers/subject.rb +16 -17
- data/lib/pennmarc/helpers/title.rb +1 -1
- data/lib/pennmarc/mappers.rb +31 -0
- data/lib/pennmarc/parser.rb +34 -157
- data/lib/pennmarc/util.rb +15 -16
- data/pennmarc.gemspec +2 -2
- data/spec/lib/pennmarc/helpers/citation_spec.rb +1 -2
- data/spec/lib/pennmarc/helpers/creator_spec.rb +54 -19
- data/spec/lib/pennmarc/helpers/date_spec.rb +5 -5
- data/spec/lib/pennmarc/helpers/edition_spec.rb +4 -6
- data/spec/lib/pennmarc/helpers/format_spec.rb +30 -10
- data/spec/lib/pennmarc/helpers/genre_spec.rb +4 -4
- data/spec/lib/pennmarc/helpers/identifer_spec.rb +15 -0
- data/spec/lib/pennmarc/helpers/language_spec.rb +1 -1
- data/spec/lib/pennmarc/helpers/location_spec.rb +2 -1
- data/spec/lib/pennmarc/helpers/note_spec.rb +67 -2
- data/spec/lib/pennmarc/helpers/relation_spec.rb +2 -2
- data/spec/lib/pennmarc/helpers/series_spec.rb +54 -0
- data/spec/lib/pennmarc/helpers/subject_spec.rb +9 -9
- data/spec/lib/pennmarc/helpers/title_spec.rb +3 -1
- data/spec/lib/pennmarc/marc_util_spec.rb +9 -8
- data/spec/lib/pennmarc/parser_spec.rb +24 -3
- data/spec/spec_helper.rb +1 -1
- metadata +8 -20
- data/legacy/indexer.rb +0 -568
- data/legacy/marc.rb +0 -2964
- data/legacy/test_file_output.json +0 -49
@@ -20,7 +20,9 @@ describe 'PennMARC::Title' do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
|
23
|
+
describe '.search_aux' do
|
24
|
+
it 'returns search aux values', pending: 'Not implemented yet'
|
25
|
+
end
|
24
26
|
|
25
27
|
describe '.show' do
|
26
28
|
let(:record) { marc_record fields: [marc_field(tag: '245', subfields: subfields)] }
|
@@ -20,11 +20,11 @@ describe 'PennMARC::Util' do
|
|
20
20
|
let(:field) { marc_field subfields: { a: '123' } }
|
21
21
|
|
22
22
|
it 'returns true if the specified subfield value matches the regex' do
|
23
|
-
expect(util.
|
23
|
+
expect(util).to be_subfield_value(field, 'a', /123/)
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'returns false if the subfield value does not match the regex' do
|
27
|
-
expect(util.
|
27
|
+
expect(util).not_to be_subfield_value(field, 'a', /\D/)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -66,12 +66,12 @@ describe 'PennMARC::Util' do
|
|
66
66
|
let(:field) { marc_field subfields: { a: 'Defined' } }
|
67
67
|
|
68
68
|
it 'returns true if subfield is present on a field' do
|
69
|
-
expect(util.
|
70
|
-
expect(util.
|
69
|
+
expect(util).to be_subfield_defined(field, :a)
|
70
|
+
expect(util).to be_subfield_defined(field, 'a')
|
71
71
|
end
|
72
72
|
|
73
73
|
it 'returns false if a subfield is not present on a field' do
|
74
|
-
expect(util.
|
74
|
+
expect(util).not_to be_subfield_defined(field, :b)
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
@@ -79,12 +79,12 @@ describe 'PennMARC::Util' do
|
|
79
79
|
let(:field) { marc_field subfields: { a: 'Defined' } }
|
80
80
|
|
81
81
|
it 'returns true if subfield is not present on a field' do
|
82
|
-
expect(util.
|
83
|
-
expect(util.
|
82
|
+
expect(util).to be_subfield_undefined(field, :b)
|
83
|
+
expect(util).to be_subfield_undefined(field, 'b')
|
84
84
|
end
|
85
85
|
|
86
86
|
it 'returns false if a subfield is present on a field' do
|
87
|
-
expect(util.
|
87
|
+
expect(util).not_to be_subfield_undefined(field, :a)
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -173,6 +173,7 @@ describe 'PennMARC::Util' do
|
|
173
173
|
|
174
174
|
describe '.remove_paren_value_from_subfield_i' do
|
175
175
|
let(:field) { marc_field(tag: '666', subfields: { i: 'Test(Remove).' }) }
|
176
|
+
|
176
177
|
it 'removes the parentheses value from subfield i' do
|
177
178
|
expect(util.remove_paren_value_from_subfield_i(field)).to eq('Test')
|
178
179
|
end
|
@@ -3,11 +3,32 @@
|
|
3
3
|
describe PennMARC::Parser do
|
4
4
|
include MarcSpecHelpers
|
5
5
|
|
6
|
-
let(:record) { record_from 'test.xml' }
|
7
|
-
|
8
6
|
subject(:parser) { described_class.new }
|
9
7
|
|
8
|
+
let(:record) { record_from 'test.xml' }
|
9
|
+
|
10
10
|
it 'delegates to helper modules properly' do
|
11
|
-
expect
|
11
|
+
expect(parser.language_search(record)).to eq 'English'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'delegates to helper modules properly with extra params' do
|
15
|
+
bogus_map = { eng: 'American' }
|
16
|
+
expect(parser.language_search(record, language_map: bogus_map)).to eq 'American'
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'raises an exception if the method call is invalid' do
|
20
|
+
expect { parser.title(record) }.to raise_error NoMethodError
|
21
|
+
expect { parser.title_nope(record) }.to raise_error NoMethodError
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#respond_to?' do
|
25
|
+
it 'returns true if a helper has the expected method' do
|
26
|
+
expect(parser).to respond_to :language_search
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns false if a helper does not have the expected method' do
|
30
|
+
expect(parser).not_to respond_to :language_nope
|
31
|
+
expect(parser).not_to respond_to :nope
|
32
|
+
end
|
12
33
|
end
|
13
34
|
end
|
data/spec/spec_helper.rb
CHANGED
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:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Kanning
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-08-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -68,20 +68,6 @@ dependencies:
|
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '1.15'
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: rspec
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - "~>"
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '3.12'
|
78
|
-
type: :development
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - "~>"
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '3.12'
|
85
71
|
description: |-
|
86
72
|
This gem provides methods for parsing a Penn Libraries MARCXML record into string, array and date
|
87
73
|
objects for use in discovery or preservation applications.
|
@@ -92,13 +78,12 @@ extra_rdoc_files: []
|
|
92
78
|
files:
|
93
79
|
- ".gitignore"
|
94
80
|
- ".rspec"
|
81
|
+
- ".rubocop.yml"
|
82
|
+
- ".rubocop_todo.yml"
|
95
83
|
- ".ruby-version"
|
96
84
|
- Gemfile
|
97
85
|
- Gemfile.lock
|
98
86
|
- README.md
|
99
|
-
- legacy/indexer.rb
|
100
|
-
- legacy/marc.rb
|
101
|
-
- legacy/test_file_output.json
|
102
87
|
- lib/pennmarc.rb
|
103
88
|
- lib/pennmarc/encoding_level.rb
|
104
89
|
- lib/pennmarc/enriched_marc.rb
|
@@ -121,6 +106,7 @@ files:
|
|
121
106
|
- lib/pennmarc/helpers/series.rb
|
122
107
|
- lib/pennmarc/helpers/subject.rb
|
123
108
|
- lib/pennmarc/helpers/title.rb
|
109
|
+
- lib/pennmarc/mappers.rb
|
124
110
|
- lib/pennmarc/mappings/language.yml
|
125
111
|
- lib/pennmarc/mappings/locations.yml
|
126
112
|
- lib/pennmarc/mappings/relator.yml
|
@@ -141,6 +127,7 @@ files:
|
|
141
127
|
- spec/lib/pennmarc/helpers/note_spec.rb
|
142
128
|
- spec/lib/pennmarc/helpers/production_spec.rb
|
143
129
|
- spec/lib/pennmarc/helpers/relation_spec.rb
|
130
|
+
- spec/lib/pennmarc/helpers/series_spec.rb
|
144
131
|
- spec/lib/pennmarc/helpers/subject_spec.rb
|
145
132
|
- spec/lib/pennmarc/helpers/title_spec.rb
|
146
133
|
- spec/lib/pennmarc/marc_util_spec.rb
|
@@ -150,7 +137,8 @@ files:
|
|
150
137
|
homepage: https://gitlab.library.upenn.edu/dld/catalog/pennmarc
|
151
138
|
licenses:
|
152
139
|
- MIT
|
153
|
-
metadata:
|
140
|
+
metadata:
|
141
|
+
rubygems_mfa_required: 'true'
|
154
142
|
post_install_message:
|
155
143
|
rdoc_options: []
|
156
144
|
require_paths:
|