pennmarc 0.0.2 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: