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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/.rubocop_todo.yml +143 -0
  4. data/Gemfile +1 -1
  5. data/README.md +12 -2
  6. data/lib/pennmarc/helpers/creator.rb +59 -21
  7. data/lib/pennmarc/helpers/database.rb +8 -8
  8. data/lib/pennmarc/helpers/date.rb +16 -15
  9. data/lib/pennmarc/helpers/edition.rb +25 -20
  10. data/lib/pennmarc/helpers/format.rb +15 -4
  11. data/lib/pennmarc/helpers/genre.rb +13 -11
  12. data/lib/pennmarc/helpers/helper.rb +1 -0
  13. data/lib/pennmarc/helpers/identifier.rb +16 -7
  14. data/lib/pennmarc/helpers/language.rb +3 -3
  15. data/lib/pennmarc/helpers/link.rb +6 -0
  16. data/lib/pennmarc/helpers/location.rb +8 -8
  17. data/lib/pennmarc/helpers/note.rb +52 -2
  18. data/lib/pennmarc/helpers/relation.rb +4 -4
  19. data/lib/pennmarc/helpers/series.rb +171 -85
  20. data/lib/pennmarc/helpers/subject.rb +16 -17
  21. data/lib/pennmarc/helpers/title.rb +1 -1
  22. data/lib/pennmarc/mappers.rb +31 -0
  23. data/lib/pennmarc/parser.rb +34 -157
  24. data/lib/pennmarc/util.rb +15 -16
  25. data/pennmarc.gemspec +2 -2
  26. data/spec/lib/pennmarc/helpers/citation_spec.rb +1 -2
  27. data/spec/lib/pennmarc/helpers/creator_spec.rb +54 -19
  28. data/spec/lib/pennmarc/helpers/date_spec.rb +5 -5
  29. data/spec/lib/pennmarc/helpers/edition_spec.rb +4 -6
  30. data/spec/lib/pennmarc/helpers/format_spec.rb +30 -10
  31. data/spec/lib/pennmarc/helpers/genre_spec.rb +4 -4
  32. data/spec/lib/pennmarc/helpers/identifer_spec.rb +15 -0
  33. data/spec/lib/pennmarc/helpers/language_spec.rb +1 -1
  34. data/spec/lib/pennmarc/helpers/location_spec.rb +2 -1
  35. data/spec/lib/pennmarc/helpers/note_spec.rb +67 -2
  36. data/spec/lib/pennmarc/helpers/relation_spec.rb +2 -2
  37. data/spec/lib/pennmarc/helpers/series_spec.rb +54 -0
  38. data/spec/lib/pennmarc/helpers/subject_spec.rb +9 -9
  39. data/spec/lib/pennmarc/helpers/title_spec.rb +3 -1
  40. data/spec/lib/pennmarc/marc_util_spec.rb +9 -8
  41. data/spec/lib/pennmarc/parser_spec.rb +24 -3
  42. data/spec/spec_helper.rb +1 -1
  43. metadata +8 -20
  44. data/legacy/indexer.rb +0 -568
  45. data/legacy/marc.rb +0 -2964
  46. 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
- xdescribe '.search_aux'
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.subfield_value?(field, 'a', /123/)).to be_truthy
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.subfield_value?(field, 'a', /\D/)).to be_falsey
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.subfield_defined?(field, :a)).to be_truthy
70
- expect(util.subfield_defined?(field, 'a')).to be_truthy
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.subfield_defined?(field, :b)).to be_falsey
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.subfield_undefined?(field, :b)).to be_truthy
83
- expect(util.subfield_undefined?(field, 'b')).to be_truthy
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.subfield_undefined?(field, :a)).to be_falsey
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 { parser.title_show(record) }.not_to raise_exception
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  $LOAD_PATH.unshift(__dir__) unless $LOAD_PATH.include?(__dir__)
4
4
 
5
- Dir[File.join(__dir__, 'support', '**', '*.rb')].sort.each { |f| require f }
5
+ Dir[File.join(__dir__, 'support', '**', '*.rb')].each { |f| require f }
6
6
 
7
7
  require 'pennmarc'
8
8
 
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: 0.0.2
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-07-17 00:00:00.000000000 Z
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: