traject 3.8.1 → 3.8.3

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.
@@ -24,21 +24,20 @@ describe "Shell out to command line" do
24
24
  out, err, result = execute_with_args("-v")
25
25
 
26
26
  assert result.success?, "Expected subprocess exit code to be success.\nSTDERR:\n#{err}\n\nSTDOUT:\n#{out}"
27
- assert_equal err, "traject version #{Traject::VERSION}\n"
27
+ assert err.end_with?("traject version #{Traject::VERSION}\n")
28
28
  end
29
29
 
30
30
  it "can display help text" do
31
31
  out, err, result = execute_with_args("-h")
32
32
 
33
33
  assert result.success?, "Expected subprocess exit code to be success.\nSTDERR:\n#{err}\n\nSTDOUT:\n#{out}"
34
- assert err.start_with?("traject [options] -c configuration.rb [-c config2.rb] file.mrc")
34
+ assert_includes err, "traject [options] -c configuration.rb [-c config2.rb] file.mrc"
35
35
  end
36
36
 
37
37
  it "handles bad argument" do
38
38
  out, err, result = execute_with_args("--no-such-arg")
39
39
  refute result.success?
40
-
41
- assert err.start_with?("Error: unknown option `--no-such-arg'\nExiting...\n")
40
+ assert_includes err, "Error: unknown option `--no-such-arg'\nExiting...\n"
42
41
  end
43
42
 
44
43
  it "does basic dry run" do
@@ -49,4 +48,3 @@ describe "Shell out to command line" do
49
48
  assert_match /bib_1000165 +author_sort +Collection la/, out
50
49
  end
51
50
  end
52
-
@@ -21,7 +21,7 @@ describe 'Custom mapping error handler' do
21
21
  end
22
22
 
23
23
  assert_equal "I just like raising errors", e.message
24
- assert output.string =~ /while executing \(to_field \"id\" at .*error_handler_test.rb:\d+\)/
24
+ assert output.string =~ /while executing \(to_field \"id\" at .*error_handler_test.rb:\d+.*\)/
25
25
  assert output.string =~ /CustomFakeException: I just like raising errors/
26
26
  end
27
27
 
@@ -38,7 +38,7 @@ describe 'Custom mapping error handler' do
38
38
  end
39
39
  end
40
40
  e = assert_raises(CustomFakeException) { indexer.map_record({}) }
41
- assert e.message =~ /\(to_field \"id\" at .*error_handler_test.rb:\d+\)/
41
+ assert e.message =~ /\(to_field \"id\" at .*error_handler_test.rb:\d+.*\)/
42
42
  end
43
43
 
44
44
  it "custom handler can skip and continue" do
@@ -87,8 +87,9 @@ describe "Traject::Macros::Marc21Semantics" do
87
87
 
88
88
  assert_equal ["Business renaissance quarterly [electronic resource]."], output["author_sort"]
89
89
  assert_equal [""], @indexer.map_record(empty_record)['author_sort']
90
-
91
90
  end
91
+
92
+
92
93
  end
93
94
 
94
95
  describe "marc_sortable_title" do
@@ -107,6 +108,16 @@ describe "Traject::Macros::Marc21Semantics" do
107
108
 
108
109
  assert_equal ["Business renaissance quarterly"], output["title_sort"]
109
110
  end
111
+
112
+ it "respects non-filing when the first subfield isn't alphabetic" do
113
+ @record = MARC::Reader.new(support_file_path "the_business_ren.marc").first
114
+ @record.fields("245").first.subfields.unshift MARC::Subfield.new("6", "245-03")
115
+ output = @indexer.map_record(@record)
116
+ assert_equal ["Business renaissance quarterly"], output["title_sort"]
117
+
118
+
119
+ end
120
+
110
121
  it "works with a record with no 245$ab" do
111
122
  @record = MARC::Reader.new(support_file_path "245_no_ab.marc").to_a.first
112
123
  output = @indexer.map_record(@record)
@@ -127,6 +138,14 @@ describe "Traject::Macros::Marc21Semantics" do
127
138
  assert_equal({}, @indexer.map_record(empty_record))
128
139
 
129
140
  end
141
+ it "can handle ISO 639-3 language codes" do
142
+ @record = MARC::Reader.new(support_file_path "iso639-3_lang.marc").to_a.first
143
+ output = @indexer.map_record(@record)
144
+
145
+ assert_equal ["Norwegian", "English", "Norwegian (Bokmål)"], output["languages"]
146
+ assert_equal({}, @indexer.map_record(empty_record))
147
+
148
+ end
130
149
  end
131
150
 
132
151
  describe "marc_instrumentation_humanized" do
@@ -0,0 +1 @@
1
+ 01498cam a2200385 i 45000010009000000050017000090080041000269060045000679250042001129550090001540100017002440200029002610350024002900400023003140410013003370410023003500420008003730430012003810500023003932450107004162640044005233000046005673360026006133370028006393380027006675040041006945460045007355850101007806500045008816500044009267000032009707100065010029230029010679850016010962206778720211129111712.0210529s2020 no a b 000 0 nor  a7bcbccorigresd3encipf20gy-gencatlg0 aacquireb1 shelf copyxpolicy default ave21 2021-06-04bff16 2021-09-23aff00 2021-09-23 to GS/SBCGiff07 2021-11-29 to BCCD a 2021378586 a9788293654162qpaperback a(GyWOH)har205007114 aDLCbengcDLCerda1 anoraeng17anobaeng2iso639-3 apcc af------00aN7380.5b.A47 202000aAlpha Crucis :bcontemporary African art /credaktør: Gunnar B. Kvaran ; oversettelse: Halvor Haugen. 1aOslo :bAstrup Fearnley Museet,c[2020] a272 pages :bcolor illustrations ;c26 cm atextbtxt2rdacontent aunmediatedbn2rdamedia avolumebnc2rdacarrier aIncludes bibliographical references. aParallel texts in English and Norwegian. aIn conjunction with an exhibition held at Astrup Fearnley Museum, Oslo, January 31-May 17, 2020. 0aArt, Africany21st centuryvExhibitions. 0aArt, Moderny21st centuryvExhibitions.1 aKvaran, Gunnar B.,eeditor.2 aAstrup Fearnley museet for moderne kunst,ehost institution. d20210531n0255802sGyWOH eVENDOR LOAD
data/traject.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
 
23
23
 
24
24
  spec.add_dependency "concurrent-ruby", ">= 0.8.0"
25
+ spec.add_dependency "csv"
25
26
  spec.add_dependency "marc", "~> 1.0"
26
27
 
27
28
  spec.add_dependency "hashie", ">= 3.1", "< 6" # used for Indexer#settings
@@ -29,6 +30,8 @@ Gem::Specification.new do |spec|
29
30
  spec.add_dependency "yell" # logging
30
31
  spec.add_dependency "dot-properties", ">= 0.1.1" # reading java style .properties
31
32
  spec.add_dependency "httpclient", "~> 2.5"
33
+ spec.add_dependency "mutex_m" # httpclient has an undelcared dep needed in ruby 3.4+, not yet released. https://github.com/nahi/httpclient/pull/455
34
+
32
35
  spec.add_dependency "http", ">= 3.0", "< 6" # used in oai_pmh_reader, may use more extensively in future instead of httpclient
33
36
  spec.add_dependency 'marc-fastxmlwriter', '~>1.0' # fast marc->xml
34
37
  spec.add_dependency "nokogiri", "~> 1.9" # NokogiriIndexer
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traject
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.1
4
+ version: 3.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
8
8
  - Bill Dueber
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2022-12-09 00:00:00.000000000 Z
11
+ date: 2025-01-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: concurrent-ruby
@@ -25,6 +24,20 @@ dependencies:
25
24
  - - ">="
26
25
  - !ruby/object:Gem::Version
27
26
  version: 0.8.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: csv
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
28
41
  - !ruby/object:Gem::Dependency
29
42
  name: marc
30
43
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +128,20 @@ dependencies:
115
128
  - - "~>"
116
129
  - !ruby/object:Gem::Version
117
130
  version: '2.5'
131
+ - !ruby/object:Gem::Dependency
132
+ name: mutex_m
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
118
145
  - !ruby/object:Gem::Dependency
119
146
  name: http
120
147
  requirement: !ruby/object:Gem::Requirement
@@ -225,7 +252,6 @@ dependencies:
225
252
  - - "~>"
226
253
  - !ruby/object:Gem::Version
227
254
  version: '3.4'
228
- description:
229
255
  email:
230
256
  - none@nowhere.org
231
257
  executables:
@@ -346,6 +372,7 @@ files:
346
372
  - test/test_support/escaped_character_reference.marc8.marc
347
373
  - test/test_support/george_eliot.marc
348
374
  - test/test_support/hebrew880s.marc
375
+ - test/test_support/iso639-3_lang.marc
349
376
  - test/test_support/louis_armstrong.marc
350
377
  - test/test_support/manufacturing_consent.marc
351
378
  - test/test_support/manuscript_online_thesis.marc
@@ -387,7 +414,6 @@ homepage: http://github.com/traject/traject
387
414
  licenses:
388
415
  - MIT
389
416
  metadata: {}
390
- post_install_message:
391
417
  rdoc_options: []
392
418
  require_paths:
393
419
  - lib
@@ -402,8 +428,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
402
428
  - !ruby/object:Gem::Version
403
429
  version: '0'
404
430
  requirements: []
405
- rubygems_version: 3.3.3
406
- signing_key:
431
+ rubygems_version: 3.6.2
407
432
  specification_version: 4
408
433
  summary: An easy to use, high-performance, flexible and extensible metadata transformation
409
434
  system, focused on library-archives-museums input, and indexing to Solr as output.
@@ -452,6 +477,7 @@ test_files:
452
477
  - test/test_support/escaped_character_reference.marc8.marc
453
478
  - test/test_support/george_eliot.marc
454
479
  - test/test_support/hebrew880s.marc
480
+ - test/test_support/iso639-3_lang.marc
455
481
  - test/test_support/louis_armstrong.marc
456
482
  - test/test_support/manufacturing_consent.marc
457
483
  - test/test_support/manuscript_online_thesis.marc