pennmarc 1.0.0 → 1.0.2
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 +3 -0
- data/.rubocop_todo.yml +37 -21
- data/Gemfile.lock +3 -0
- data/README.md +12 -2
- data/lib/pennmarc/helpers/creator.rb +24 -20
- data/lib/pennmarc/helpers/edition.rb +15 -13
- data/lib/pennmarc/helpers/format.rb +3 -3
- data/lib/pennmarc/helpers/genre.rb +5 -4
- data/lib/pennmarc/helpers/helper.rb +1 -0
- data/lib/pennmarc/helpers/identifier.rb +32 -15
- data/lib/pennmarc/helpers/language.rb +3 -3
- data/lib/pennmarc/helpers/location.rb +10 -10
- data/lib/pennmarc/helpers/note.rb +0 -2
- data/lib/pennmarc/helpers/relation.rb +7 -7
- data/lib/pennmarc/helpers/series.rb +19 -31
- data/lib/pennmarc/helpers/subject.rb +11 -11
- data/lib/pennmarc/helpers/title.rb +1 -1
- data/lib/pennmarc/mappers.rb +31 -0
- data/lib/pennmarc/parser.rb +36 -62
- data/lib/pennmarc/util.rb +10 -11
- data/lib/pennmarc/version.rb +5 -0
- data/pennmarc.gemspec +5 -1
- data/spec/lib/pennmarc/helpers/creator_spec.rb +9 -9
- data/spec/lib/pennmarc/helpers/edition_spec.rb +3 -2
- data/spec/lib/pennmarc/helpers/format_spec.rb +1 -1
- data/spec/lib/pennmarc/helpers/genre_spec.rb +1 -1
- data/spec/lib/pennmarc/helpers/identifer_spec.rb +43 -14
- data/spec/lib/pennmarc/helpers/language_spec.rb +1 -1
- data/spec/lib/pennmarc/helpers/location_spec.rb +8 -8
- data/spec/lib/pennmarc/helpers/relation_spec.rb +2 -2
- data/spec/lib/pennmarc/helpers/series_spec.rb +6 -5
- data/spec/lib/pennmarc/helpers/subject_spec.rb +1 -1
- data/spec/lib/pennmarc/parser_spec.rb +22 -1
- metadata +7 -8
- data/legacy/indexer.rb +0 -568
- data/legacy/marc.rb +0 -2964
- data/legacy/test_file_output.json +0 -49
@@ -11,9 +11,9 @@ describe 'PennMARC::Location' do
|
|
11
11
|
let(:record) { marc_record(fields: [marc_field(tag: 'itm', subfields: { g: 'stor' })]) }
|
12
12
|
|
13
13
|
it 'returns expected value' do
|
14
|
-
expect(helper.location(record: record,
|
14
|
+
expect(helper.location(record: record, location_map: mapping,
|
15
15
|
display_value: :library)).to contain_exactly('LIBRA')
|
16
|
-
expect(helper.location(record: record,
|
16
|
+
expect(helper.location(record: record, location_map: mapping,
|
17
17
|
display_value: 'specific_location')).to contain_exactly('LIBRA')
|
18
18
|
end
|
19
19
|
end
|
@@ -22,9 +22,9 @@ describe 'PennMARC::Location' do
|
|
22
22
|
let(:record) { marc_record(fields: [marc_field(tag: 'hld', subfields: { c: 'stor' })]) }
|
23
23
|
|
24
24
|
it 'returns expected value' do
|
25
|
-
expect(helper.location(record: record,
|
25
|
+
expect(helper.location(record: record, location_map: mapping,
|
26
26
|
display_value: :library)).to contain_exactly('LIBRA')
|
27
|
-
expect(helper.location(record: record,
|
27
|
+
expect(helper.location(record: record, location_map: mapping,
|
28
28
|
display_value: 'specific_location')).to contain_exactly('LIBRA')
|
29
29
|
end
|
30
30
|
end
|
@@ -36,7 +36,7 @@ describe 'PennMARC::Location' do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'returns item location' do
|
39
|
-
expect(helper.location(record: record,
|
39
|
+
expect(helper.location(record: record, location_map: mapping,
|
40
40
|
display_value: :library)).to contain_exactly('LIBRA')
|
41
41
|
end
|
42
42
|
end
|
@@ -45,7 +45,7 @@ describe 'PennMARC::Location' do
|
|
45
45
|
let(:record) { marc_record(fields: [marc_field(tag: 'itm', subfields: { g: %w[dent] })]) }
|
46
46
|
|
47
47
|
it 'returns expected value' do
|
48
|
-
expect(helper.location(record: record,
|
48
|
+
expect(helper.location(record: record, location_map: mapping,
|
49
49
|
display_value: :library)).to contain_exactly('Health Sciences Libraries',
|
50
50
|
'Levy Dental Medicine Library')
|
51
51
|
end
|
@@ -55,7 +55,7 @@ describe 'PennMARC::Location' do
|
|
55
55
|
let(:record) { marc_record(fields: [marc_field(tag: '852', subfields: { g: 'stor' })]) }
|
56
56
|
|
57
57
|
it 'returns expected value' do
|
58
|
-
expect(helper.location(record: record,
|
58
|
+
expect(helper.location(record: record, location_map: mapping, display_value: :library)).to be_empty
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -63,7 +63,7 @@ describe 'PennMARC::Location' do
|
|
63
63
|
let(:record) { marc_record(fields: [marc_field(tag: 'itm', subfields: { g: 'stor' }), marc_field(tag: 'prt')]) }
|
64
64
|
|
65
65
|
it 'returns expected value' do
|
66
|
-
expect(helper.location(record: record,
|
66
|
+
expect(helper.location(record: record, location_map: mapping,
|
67
67
|
display_value: :library)).to contain_exactly('LIBRA', 'Online library')
|
68
68
|
end
|
69
69
|
end
|
@@ -65,7 +65,7 @@ describe 'PennMARC::Relation' do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it 'returns specified subfield values from specified field with blank indicator2' do
|
68
|
-
values = helper.related_work_show record, relator_map
|
68
|
+
values = helper.related_work_show record, relator_map: relator_map
|
69
69
|
expect(values).to contain_exactly 'Translation of: Some Author Aphorisms, Translator',
|
70
70
|
'Alt. Prefix: Alt. Author Alt. Aphorisms'
|
71
71
|
expect(values).not_to include 'Ignored'
|
@@ -81,7 +81,7 @@ describe 'PennMARC::Relation' do
|
|
81
81
|
end
|
82
82
|
|
83
83
|
it "returns specified subfield values from specified field with '2' in indicator2" do
|
84
|
-
values = helper.contains_show record, relator_map
|
84
|
+
values = helper.contains_show record, relator_map: relator_map
|
85
85
|
expect(values).to contain_exactly 'Alt. Prefix: Alt. Name', 'Container of: Some Author Works, Author'
|
86
86
|
expect(values).not_to include 'Ignored'
|
87
87
|
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: '
|
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' }),
|
@@ -18,21 +19,21 @@ describe 'PennMARC::Series' do
|
|
18
19
|
|
19
20
|
describe '.show' do
|
20
21
|
it 'returns the series' do
|
21
|
-
expect(helper.show(record, mapping)).to contain_exactly('Bean Bagatolvski 1997- bk. 1',
|
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
|
|
27
28
|
describe '.values' do
|
28
29
|
it 'returns the values' do
|
29
|
-
expect(helper.values(record, mapping)).to contain_exactly('Bean Bagatolvski 1997- bk. 1.')
|
30
|
+
expect(helper.values(record, relator_map: mapping)).to contain_exactly('Bean Bagatolvski 1997- bk. 1.')
|
30
31
|
end
|
31
32
|
end
|
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
|
@@ -10,7 +10,7 @@ describe 'PennMARC::Subject' do
|
|
10
10
|
|
11
11
|
describe '.search' do
|
12
12
|
let(:record) { marc_record fields: fields }
|
13
|
-
let(:values) { helper.search(record, relator_map) }
|
13
|
+
let(:values) { helper.search(record, relator_map: relator_map) }
|
14
14
|
|
15
15
|
context 'with a mix of included and excluded tags' do
|
16
16
|
let(:fields) do
|
@@ -8,6 +8,27 @@ describe PennMARC::Parser do
|
|
8
8
|
let(:record) { record_from 'test.xml' }
|
9
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
|
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.
|
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-
|
13
|
+
date: 2023-10-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -84,9 +84,6 @@ files:
|
|
84
84
|
- Gemfile
|
85
85
|
- Gemfile.lock
|
86
86
|
- README.md
|
87
|
-
- legacy/indexer.rb
|
88
|
-
- legacy/marc.rb
|
89
|
-
- legacy/test_file_output.json
|
90
87
|
- lib/pennmarc.rb
|
91
88
|
- lib/pennmarc/encoding_level.rb
|
92
89
|
- lib/pennmarc/enriched_marc.rb
|
@@ -109,11 +106,13 @@ files:
|
|
109
106
|
- lib/pennmarc/helpers/series.rb
|
110
107
|
- lib/pennmarc/helpers/subject.rb
|
111
108
|
- lib/pennmarc/helpers/title.rb
|
109
|
+
- lib/pennmarc/mappers.rb
|
112
110
|
- lib/pennmarc/mappings/language.yml
|
113
111
|
- lib/pennmarc/mappings/locations.yml
|
114
112
|
- lib/pennmarc/mappings/relator.yml
|
115
113
|
- lib/pennmarc/parser.rb
|
116
114
|
- lib/pennmarc/util.rb
|
115
|
+
- lib/pennmarc/version.rb
|
117
116
|
- pennmarc.gemspec
|
118
117
|
- spec/fixtures/marcxml/test.xml
|
119
118
|
- spec/lib/pennmarc/helpers/citation_spec.rb
|
@@ -141,7 +140,7 @@ licenses:
|
|
141
140
|
- MIT
|
142
141
|
metadata:
|
143
142
|
rubygems_mfa_required: 'true'
|
144
|
-
post_install_message:
|
143
|
+
post_install_message:
|
145
144
|
rdoc_options: []
|
146
145
|
require_paths:
|
147
146
|
- lib
|
@@ -157,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
156
|
version: '0'
|
158
157
|
requirements: []
|
159
158
|
rubygems_version: 3.4.10
|
160
|
-
signing_key:
|
159
|
+
signing_key:
|
161
160
|
specification_version: 4
|
162
161
|
summary: Penn Libraries Catalog MARC parsing wisdom for cross-project usage
|
163
162
|
test_files: []
|