stanford-mods 2.5.1 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +80 -57
- data/.travis.yml +3 -7
- data/lib/stanford-mods/searchworks.rb +36 -88
- data/lib/stanford-mods/searchworks_subjects.rb +1 -2
- data/lib/stanford-mods/version.rb +1 -1
- data/spec/imprint_spec.rb +2 -1
- data/spec/searchworks_format_spec.rb +22 -285
- data/spec/searchworks_subject_spec.rb +0 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cee6b06bb95f5c410a2b021f8d2b2d82254e52d5
|
4
|
+
data.tar.gz: cb1d846be2f33d5420edeef5705f704fadb9d804
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b28846bce27f831c74cb88d708691643a24fc1183e593e42068c4b032254dd3ab47094550e45a8c4a2eb43fd02a866e06343506817c22d7f0bdb27dbb5c907a
|
7
|
+
data.tar.gz: 54f09f4ec848dfe215bea0559a6e0ae62d17d186e2fa8483aa155495ee27b4b34b3db7de9f0c7e7b102f65dbcd59f4a51ccb7fe97c7eadd640cba1e6c5e4ebcb
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2018-08-08 21:42:13 -0700 using RuboCop version 0.57.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -9,14 +9,14 @@
|
|
9
9
|
# Offense count: 2
|
10
10
|
# Cop supports --auto-correct.
|
11
11
|
# Configuration parameters: Include, TreatCommentsAsGroupSeparators.
|
12
|
-
# Include: **/Gemfile, **/gems.rb
|
12
|
+
# Include: **/*.gemfile, **/Gemfile, **/gems.rb
|
13
13
|
Bundler/OrderedGems:
|
14
14
|
Exclude:
|
15
15
|
- 'Gemfile'
|
16
16
|
|
17
17
|
# Offense count: 1
|
18
18
|
# Cop supports --auto-correct.
|
19
|
-
# Configuration parameters: EnforcedStyle,
|
19
|
+
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
20
20
|
# SupportedStyles: outdent, indent
|
21
21
|
Layout/AccessModifierIndentation:
|
22
22
|
Exclude:
|
@@ -31,7 +31,7 @@ Layout/AlignArray:
|
|
31
31
|
|
32
32
|
# Offense count: 4
|
33
33
|
# Cop supports --auto-correct.
|
34
|
-
# Configuration parameters: EnforcedHashRocketStyle,
|
34
|
+
# Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
|
35
35
|
# SupportedHashRocketStyles: key, separator, table
|
36
36
|
# SupportedColonStyles: key, separator, table
|
37
37
|
# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
|
@@ -49,7 +49,7 @@ Layout/BlockEndNewline:
|
|
49
49
|
|
50
50
|
# Offense count: 20
|
51
51
|
# Cop supports --auto-correct.
|
52
|
-
# Configuration parameters: EnforcedStyle,
|
52
|
+
# Configuration parameters: EnforcedStyle, IndentOneStep, IndentationWidth.
|
53
53
|
# SupportedStyles: case, end
|
54
54
|
Layout/CaseIndentation:
|
55
55
|
Exclude:
|
@@ -78,7 +78,7 @@ Layout/ExtraSpacing:
|
|
78
78
|
|
79
79
|
# Offense count: 6
|
80
80
|
# Cop supports --auto-correct.
|
81
|
-
# Configuration parameters: EnforcedStyle
|
81
|
+
# Configuration parameters: EnforcedStyle.
|
82
82
|
# SupportedStyles: symmetrical, new_line, same_line
|
83
83
|
Layout/MultilineArrayBraceLayout:
|
84
84
|
Exclude:
|
@@ -93,7 +93,7 @@ Layout/MultilineBlockLayout:
|
|
93
93
|
|
94
94
|
# Offense count: 5
|
95
95
|
# Cop supports --auto-correct.
|
96
|
-
# Configuration parameters: EnforcedStyle,
|
96
|
+
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
97
97
|
# SupportedStyles: aligned, indented, indented_relative_to_receiver
|
98
98
|
Layout/MultilineMethodCallIndentation:
|
99
99
|
Exclude:
|
@@ -101,7 +101,7 @@ Layout/MultilineMethodCallIndentation:
|
|
101
101
|
|
102
102
|
# Offense count: 882
|
103
103
|
# Cop supports --auto-correct.
|
104
|
-
# Configuration parameters: EnforcedStyle,
|
104
|
+
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
105
105
|
# SupportedStyles: aligned, indented
|
106
106
|
Layout/MultilineOperationIndentation:
|
107
107
|
Exclude:
|
@@ -112,6 +112,12 @@ Layout/MultilineOperationIndentation:
|
|
112
112
|
- 'spec/fixtures/spotlight_pub_date_data.rb'
|
113
113
|
- 'spec/origin_info_spec.rb'
|
114
114
|
|
115
|
+
# Offense count: 1
|
116
|
+
# Cop supports --auto-correct.
|
117
|
+
Layout/SpaceAfterComma:
|
118
|
+
Exclude:
|
119
|
+
- 'spec/imprint_spec.rb'
|
120
|
+
|
115
121
|
# Offense count: 1
|
116
122
|
# Cop supports --auto-correct.
|
117
123
|
# Configuration parameters: AllowForAlignment.
|
@@ -121,7 +127,7 @@ Layout/SpaceAroundOperators:
|
|
121
127
|
|
122
128
|
# Offense count: 2
|
123
129
|
# Cop supports --auto-correct.
|
124
|
-
# Configuration parameters: EnforcedStyle,
|
130
|
+
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
|
125
131
|
# SupportedStyles: space, no_space
|
126
132
|
# SupportedStylesForEmptyBraces: space, no_space
|
127
133
|
Layout/SpaceInsideBlockBraces:
|
@@ -130,31 +136,27 @@ Layout/SpaceInsideBlockBraces:
|
|
130
136
|
|
131
137
|
# Offense count: 11
|
132
138
|
# Cop supports --auto-correct.
|
139
|
+
# Configuration parameters: AllowInHeredoc.
|
133
140
|
Layout/TrailingWhitespace:
|
134
141
|
Exclude:
|
135
142
|
- 'lib/stanford-mods/searchworks.rb'
|
136
143
|
- 'spec/searchworks_spec.rb'
|
137
144
|
|
138
|
-
# Offense count:
|
139
|
-
Lint/RescueWithoutErrorClass:
|
140
|
-
Exclude:
|
141
|
-
- 'lib/stanford-mods/imprint.rb'
|
142
|
-
|
143
|
-
# Offense count: 32
|
145
|
+
# Offense count: 33
|
144
146
|
Metrics/AbcSize:
|
145
|
-
Max:
|
147
|
+
Max: 56
|
146
148
|
|
147
|
-
# Offense count:
|
149
|
+
# Offense count: 102
|
148
150
|
# Configuration parameters: CountComments, ExcludedMethods.
|
149
151
|
Metrics/BlockLength:
|
150
|
-
Max:
|
152
|
+
Max: 795
|
151
153
|
|
152
154
|
# Offense count: 5
|
153
155
|
# Configuration parameters: CountComments.
|
154
156
|
Metrics/ClassLength:
|
155
|
-
Max:
|
157
|
+
Max: 377
|
156
158
|
|
157
|
-
# Offense count:
|
159
|
+
# Offense count: 20
|
158
160
|
Metrics/CyclomaticComplexity:
|
159
161
|
Max: 26
|
160
162
|
|
@@ -164,25 +166,18 @@ Metrics/CyclomaticComplexity:
|
|
164
166
|
Metrics/LineLength:
|
165
167
|
Max: 199
|
166
168
|
|
167
|
-
# Offense count:
|
169
|
+
# Offense count: 32
|
168
170
|
# Configuration parameters: CountComments.
|
169
171
|
Metrics/MethodLength:
|
170
172
|
Max: 52
|
171
173
|
|
172
|
-
# Offense count:
|
174
|
+
# Offense count: 16
|
173
175
|
Metrics/PerceivedComplexity:
|
174
176
|
Max: 20
|
175
177
|
|
176
|
-
# Offense count: 1
|
177
|
-
# Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
|
178
|
-
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
|
179
|
-
Naming/FileName:
|
180
|
-
Exclude:
|
181
|
-
- 'lib/stanford-mods.rb'
|
182
|
-
|
183
178
|
# Offense count: 24
|
184
179
|
# Configuration parameters: Blacklist.
|
185
|
-
# Blacklist:
|
180
|
+
# Blacklist: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
|
186
181
|
Naming/HeredocDelimiterNaming:
|
187
182
|
Exclude:
|
188
183
|
- 'spec/geo_spatial_spec.rb'
|
@@ -192,7 +187,7 @@ Naming/HeredocDelimiterNaming:
|
|
192
187
|
- 'spec/searchworks_basic_spec.rb'
|
193
188
|
|
194
189
|
# Offense count: 3
|
195
|
-
# Configuration parameters: EnforcedStyle
|
190
|
+
# Configuration parameters: EnforcedStyle.
|
196
191
|
# SupportedStyles: snake_case, camelCase
|
197
192
|
Naming/MethodName:
|
198
193
|
Exclude:
|
@@ -210,8 +205,15 @@ Naming/PredicateName:
|
|
210
205
|
- 'spec/**/*'
|
211
206
|
- 'lib/stanford-mods/origin_info.rb'
|
212
207
|
|
208
|
+
# Offense count: 2
|
209
|
+
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
210
|
+
# AllowedNames: io, id, to, by, on, in, at
|
211
|
+
Naming/UncommunicativeMethodParamName:
|
212
|
+
Exclude:
|
213
|
+
- 'lib/stanford-mods/imprint.rb'
|
214
|
+
|
213
215
|
# Offense count: 8
|
214
|
-
# Configuration parameters: EnforcedStyle
|
216
|
+
# Configuration parameters: EnforcedStyle.
|
215
217
|
# SupportedStyles: snake_case, camelCase
|
216
218
|
Naming/VariableName:
|
217
219
|
Exclude:
|
@@ -219,12 +221,11 @@ Naming/VariableName:
|
|
219
221
|
- 'lib/stanford-mods/origin_info.rb'
|
220
222
|
- 'lib/stanford-mods/searchworks.rb'
|
221
223
|
|
222
|
-
# Offense count:
|
224
|
+
# Offense count: 1
|
223
225
|
# Cop supports --auto-correct.
|
224
|
-
|
225
|
-
Performance/HashEachMethods:
|
226
|
+
Performance/UnneededSort:
|
226
227
|
Exclude:
|
227
|
-
- '
|
228
|
+
- 'lib/stanford-mods/origin_info.rb'
|
228
229
|
|
229
230
|
# Offense count: 3
|
230
231
|
RSpec/AnyInstance:
|
@@ -323,7 +324,7 @@ RSpec/FilePath:
|
|
323
324
|
- 'spec/lib/stanford-mods/coordinate_spec.rb'
|
324
325
|
|
325
326
|
# Offense count: 2
|
326
|
-
# Configuration parameters:
|
327
|
+
# Configuration parameters: .
|
327
328
|
# SupportedStyles: implicit, each, example
|
328
329
|
RSpec/HookArgument:
|
329
330
|
EnforcedStyle: each
|
@@ -346,7 +347,7 @@ RSpec/LetBeforeExamples:
|
|
346
347
|
- 'spec/origin_info_spec.rb'
|
347
348
|
|
348
349
|
# Offense count: 25
|
349
|
-
# Configuration parameters:
|
350
|
+
# Configuration parameters: .
|
350
351
|
# SupportedStyles: have_received, receive
|
351
352
|
RSpec/MessageSpies:
|
352
353
|
EnforcedStyle: receive
|
@@ -357,6 +358,7 @@ RSpec/MultipleDescribes:
|
|
357
358
|
- 'spec/geo_spatial_spec.rb'
|
358
359
|
|
359
360
|
# Offense count: 114
|
361
|
+
# Configuration parameters: AggregateFailuresByDefault.
|
360
362
|
RSpec/MultipleExpectations:
|
361
363
|
Max: 9
|
362
364
|
|
@@ -366,15 +368,8 @@ RSpec/NamedSubject:
|
|
366
368
|
- 'spec/lib/stanford-mods/coordinate_spec.rb'
|
367
369
|
|
368
370
|
# Offense count: 38
|
369
|
-
# Configuration parameters: Max.
|
370
371
|
RSpec/NestedGroups:
|
371
|
-
|
372
|
-
- 'spec/origin_info_spec.rb'
|
373
|
-
- 'spec/physical_location_spec.rb'
|
374
|
-
- 'spec/searchworks_format_spec.rb'
|
375
|
-
- 'spec/searchworks_subject_raw_spec.rb'
|
376
|
-
- 'spec/searchworks_subject_spec.rb'
|
377
|
-
- 'spec/searchworks_title_spec.rb'
|
372
|
+
Max: 5
|
378
373
|
|
379
374
|
# Offense count: 7
|
380
375
|
RSpec/RepeatedExample:
|
@@ -393,7 +388,7 @@ RSpec/VoidExpect:
|
|
393
388
|
|
394
389
|
# Offense count: 1
|
395
390
|
# Cop supports --auto-correct.
|
396
|
-
# Configuration parameters: EnforcedStyle
|
391
|
+
# Configuration parameters: EnforcedStyle.
|
397
392
|
# SupportedStyles: prefer_alias, prefer_alias_method
|
398
393
|
Style/Alias:
|
399
394
|
Exclude:
|
@@ -401,7 +396,7 @@ Style/Alias:
|
|
401
396
|
|
402
397
|
# Offense count: 30
|
403
398
|
# Cop supports --auto-correct.
|
404
|
-
# Configuration parameters: EnforcedStyle,
|
399
|
+
# Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods.
|
405
400
|
# SupportedStyles: line_count_based, semantic, braces_for_chaining
|
406
401
|
# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
|
407
402
|
# FunctionalMethods: let, let!, subject, watch
|
@@ -434,7 +429,7 @@ Style/CommentedKeyword:
|
|
434
429
|
|
435
430
|
# Offense count: 2
|
436
431
|
# Cop supports --auto-correct.
|
437
|
-
# Configuration parameters: EnforcedStyle,
|
432
|
+
# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
|
438
433
|
# SupportedStyles: assign_to_condition, assign_inside_condition
|
439
434
|
Style/ConditionalAssignment:
|
440
435
|
Exclude:
|
@@ -468,6 +463,12 @@ Style/EmptyCaseCondition:
|
|
468
463
|
Style/Encoding:
|
469
464
|
Enabled: false
|
470
465
|
|
466
|
+
# Offense count: 1
|
467
|
+
# Cop supports --auto-correct.
|
468
|
+
Style/ExpandPathArguments:
|
469
|
+
Exclude:
|
470
|
+
- 'stanford-mods.gemspec'
|
471
|
+
|
471
472
|
# Offense count: 3
|
472
473
|
# Configuration parameters: MinBodyLength.
|
473
474
|
Style/GuardClause:
|
@@ -479,6 +480,13 @@ Style/IdenticalConditionalBranches:
|
|
479
480
|
Exclude:
|
480
481
|
- 'lib/stanford-mods/searchworks.rb'
|
481
482
|
|
483
|
+
# Offense count: 2
|
484
|
+
# Cop supports --auto-correct.
|
485
|
+
Style/IfUnlessModifier:
|
486
|
+
Exclude:
|
487
|
+
- 'lib/stanford-mods/date_parsing.rb'
|
488
|
+
- 'lib/stanford-mods/imprint.rb'
|
489
|
+
|
482
490
|
# Offense count: 3
|
483
491
|
# Cop supports --auto-correct.
|
484
492
|
# Configuration parameters: InverseMethods, InverseBlocks.
|
@@ -503,7 +511,7 @@ Style/MultilineTernaryOperator:
|
|
503
511
|
|
504
512
|
# Offense count: 1
|
505
513
|
# Cop supports --auto-correct.
|
506
|
-
# Configuration parameters: EnforcedOctalStyle
|
514
|
+
# Configuration parameters: EnforcedOctalStyle.
|
507
515
|
# SupportedOctalStyles: zero_with_o, zero_only
|
508
516
|
Style/NumericLiteralPrefix:
|
509
517
|
Exclude:
|
@@ -517,7 +525,7 @@ Style/PerlBackrefs:
|
|
517
525
|
|
518
526
|
# Offense count: 3
|
519
527
|
# Cop supports --auto-correct.
|
520
|
-
# Configuration parameters: EnforcedStyle
|
528
|
+
# Configuration parameters: EnforcedStyle.
|
521
529
|
# SupportedStyles: short, verbose
|
522
530
|
Style/PreferredHashMethods:
|
523
531
|
Exclude:
|
@@ -525,7 +533,7 @@ Style/PreferredHashMethods:
|
|
525
533
|
|
526
534
|
# Offense count: 6
|
527
535
|
# Cop supports --auto-correct.
|
528
|
-
# Configuration parameters: EnforcedStyle,
|
536
|
+
# Configuration parameters: EnforcedStyle, AllowInnerSlashes.
|
529
537
|
# SupportedStyles: slashes, percent_r, mixed
|
530
538
|
Style/RegexpLiteral:
|
531
539
|
Exclude:
|
@@ -539,9 +547,17 @@ Style/RescueModifier:
|
|
539
547
|
Exclude:
|
540
548
|
- 'lib/stanford-mods/origin_info.rb'
|
541
549
|
|
550
|
+
# Offense count: 4
|
551
|
+
# Cop supports --auto-correct.
|
552
|
+
# Configuration parameters: EnforcedStyle.
|
553
|
+
# SupportedStyles: implicit, explicit
|
554
|
+
Style/RescueStandardError:
|
555
|
+
Exclude:
|
556
|
+
- 'lib/stanford-mods/imprint.rb'
|
557
|
+
|
542
558
|
# Offense count: 1
|
543
559
|
# Cop supports --auto-correct.
|
544
|
-
# Configuration parameters: EnforcedStyle
|
560
|
+
# Configuration parameters: EnforcedStyle.
|
545
561
|
# SupportedStyles: only_raise, only_fail, semantic
|
546
562
|
Style/SignalException:
|
547
563
|
Exclude:
|
@@ -549,7 +565,7 @@ Style/SignalException:
|
|
549
565
|
|
550
566
|
# Offense count: 1
|
551
567
|
# Cop supports --auto-correct.
|
552
|
-
# Configuration parameters:
|
568
|
+
# Configuration parameters: .
|
553
569
|
# SupportedStyles: use_perl_names, use_english_names
|
554
570
|
Style/SpecialGlobalVars:
|
555
571
|
EnforcedStyle: use_perl_names
|
@@ -562,7 +578,7 @@ Style/StderrPuts:
|
|
562
578
|
|
563
579
|
# Offense count: 13
|
564
580
|
# Cop supports --auto-correct.
|
565
|
-
# Configuration parameters: MinSize
|
581
|
+
# Configuration parameters: MinSize.
|
566
582
|
# SupportedStyles: percent, brackets
|
567
583
|
Style/SymbolArray:
|
568
584
|
EnforcedStyle: brackets
|
@@ -576,16 +592,23 @@ Style/SymbolProc:
|
|
576
592
|
- 'lib/stanford-mods/searchworks.rb'
|
577
593
|
- 'lib/stanford-mods/searchworks_subjects.rb'
|
578
594
|
|
595
|
+
# Offense count: 5
|
596
|
+
# Cop supports --auto-correct.
|
597
|
+
Style/UnneededCondition:
|
598
|
+
Exclude:
|
599
|
+
- 'lib/stanford-mods/origin_info.rb'
|
600
|
+
- 'lib/stanford-mods/searchworks.rb'
|
601
|
+
|
579
602
|
# Offense count: 125
|
580
603
|
# Cop supports --auto-correct.
|
581
|
-
# Configuration parameters:
|
604
|
+
# Configuration parameters: MinSize, WordRegex.
|
582
605
|
# SupportedStyles: percent, brackets
|
583
606
|
Style/WordArray:
|
584
607
|
EnforcedStyle: brackets
|
585
608
|
|
586
609
|
# Offense count: 2
|
587
610
|
# Cop supports --auto-correct.
|
588
|
-
# Configuration parameters: EnforcedStyle
|
611
|
+
# Configuration parameters: EnforcedStyle.
|
589
612
|
# SupportedStyles: all_comparison_operators, equality_operators_only
|
590
613
|
Style/YodaCondition:
|
591
614
|
Exclude:
|
data/.travis.yml
CHANGED
@@ -1,16 +1,12 @@
|
|
1
1
|
language: ruby
|
2
2
|
script: rake
|
3
3
|
rvm:
|
4
|
+
- 2.4.4
|
4
5
|
- 2.3.1
|
5
|
-
- 2.2.3 # spotlight
|
6
|
-
- 2.2.0
|
7
6
|
# we used to use jruby for merged DOR + MARC records, but no more ...
|
8
|
-
- jruby-
|
9
|
-
# we also test against ruby-head, which may be unstable.
|
10
|
-
- ruby-head
|
7
|
+
- jruby-9.2.0.0
|
11
8
|
matrix:
|
12
9
|
allow_failures:
|
13
|
-
- rvm: jruby-
|
14
|
-
- rvm: ruby-head
|
10
|
+
- rvm: jruby-9.2.0.0
|
15
11
|
notifications: false
|
16
12
|
sudo: false
|
@@ -139,24 +139,24 @@ module Stanford
|
|
139
139
|
present_title_info_nodes ? present_title_info_nodes.first : nil
|
140
140
|
end
|
141
141
|
|
142
|
-
# @return [String] the nonSort text portion of the titleInfo node as a string (if non-empty, else nil)
|
142
|
+
# @return [String] the nonSort text portion of the titleInfo node as a string (if non-empty, else nil)
|
143
143
|
def nonSort_title
|
144
144
|
return unless first_title_info_node && first_title_info_node.nonSort
|
145
145
|
|
146
146
|
first_title_info_node.nonSort.text.strip.empty? ? nil : first_title_info_node.nonSort.text.strip
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
# @return [String] the text of the titleInfo node as a string (if non-empty, else nil)
|
150
150
|
def title
|
151
151
|
return unless first_title_info_node && first_title_info_node.title
|
152
152
|
|
153
153
|
first_title_info_node.title.text.strip.empty? ? nil : first_title_info_node.title.text.strip
|
154
154
|
end
|
155
|
-
|
155
|
+
|
156
156
|
# @return [String] value for title_245_search, title_full_display
|
157
157
|
def sw_full_title
|
158
|
-
|
159
|
-
return nil unless first_title_info_node
|
158
|
+
|
159
|
+
return nil unless first_title_info_node
|
160
160
|
preSubTitle = nonSort_title ? [nonSort_title, title].compact.join(" ") : title
|
161
161
|
preSubTitle.sub!(/:$/, '') if preSubTitle # remove trailing colon
|
162
162
|
|
@@ -227,67 +227,13 @@ module Stanford
|
|
227
227
|
# see origin_info.rb (as all this information comes from top level originInfo element)
|
228
228
|
# ---- end PUBLICATION (place, year) ----
|
229
229
|
|
230
|
-
# select one or more format values from the controlled vocabulary here:
|
231
|
-
# http://searchworks-solr-lb.stanford.edu:8983/solr/select?facet.field=format&rows=0&facet.sort=index
|
232
|
-
# @return <Array[String]> value in the SearchWorks controlled vocabulary
|
233
|
-
# @deprecated - kept for backwards compatibility but not part of SW UI redesign work Summer 2014
|
234
|
-
# @deprecated: this is no longer used in SW, Revs or Spotlight Jan 2016
|
235
|
-
def format
|
236
|
-
types = term_values(:typeOfResource)
|
237
|
-
return [] unless types
|
238
|
-
genres = term_values(:genre)
|
239
|
-
issuance = term_values([:origin_info, :issuance])
|
240
|
-
val = []
|
241
|
-
types.each do |type|
|
242
|
-
case type
|
243
|
-
when 'cartographic'
|
244
|
-
val << 'Map/Globe'
|
245
|
-
when 'mixed material'
|
246
|
-
val << 'Manuscript/Archive'
|
247
|
-
when 'moving image'
|
248
|
-
val << 'Video'
|
249
|
-
when 'notated music'
|
250
|
-
val << 'Music - Score'
|
251
|
-
when 'software, multimedia'
|
252
|
-
val << 'Computer File'
|
253
|
-
when 'sound recording-musical'
|
254
|
-
val << 'Music - Recording'
|
255
|
-
when 'sound recording-nonmusical', 'sound recording'
|
256
|
-
val << 'Sound Recording'
|
257
|
-
when 'still image'
|
258
|
-
val << 'Image'
|
259
|
-
when 'text'
|
260
|
-
val << 'Book' if issuance && issuance.include?('monographic')
|
261
|
-
book_genres = ['book chapter', 'Book chapter', 'Book Chapter',
|
262
|
-
'issue brief', 'Issue brief', 'Issue Brief',
|
263
|
-
'librettos', 'Librettos',
|
264
|
-
'project report', 'Project report', 'Project Report',
|
265
|
-
'technical report', 'Technical report', 'Technical Report',
|
266
|
-
'working paper', 'Working paper', 'Working Paper']
|
267
|
-
val << 'Book' if genres && !(genres & book_genres).empty?
|
268
|
-
conf_pub = ['conference publication', 'Conference publication', 'Conference Publication']
|
269
|
-
val << 'Conference Proceedings' if genres && !(genres & conf_pub).empty?
|
270
|
-
val << 'Journal/Periodical' if issuance && issuance.include?('continuing')
|
271
|
-
article = ['article', 'Article']
|
272
|
-
val << 'Journal/Periodical' if genres && !(genres & article).empty?
|
273
|
-
stu_proj_rpt = ['student project report', 'Student project report', 'Student Project report', 'Student Project Report']
|
274
|
-
val << 'Other' if genres && !(genres & stu_proj_rpt).empty?
|
275
|
-
thesis = ['thesis', 'Thesis']
|
276
|
-
val << 'Thesis' if genres && !(genres & thesis).empty?
|
277
|
-
when 'three dimensional object'
|
278
|
-
val << 'Other'
|
279
|
-
end
|
280
|
-
end
|
281
|
-
val.uniq
|
282
|
-
end
|
283
|
-
|
284
230
|
# select one or more format values from the controlled vocabulary per JVine Summer 2014
|
285
231
|
# http://searchworks-solr-lb.stanford.edu:8983/solr/select?facet.field=format_main_ssim&rows=0&facet.sort=index
|
286
232
|
# https://github.com/sul-dlss/stanford-mods/issues/66 - For geodata, the
|
287
233
|
# resource type should be only Map and not include Software, multimedia.
|
288
234
|
# @return <Array[String]> value in the SearchWorks controlled vocabulary
|
289
235
|
def format_main
|
290
|
-
types =
|
236
|
+
types = typeOfResource
|
291
237
|
return [] unless types
|
292
238
|
article_genres = ['article', 'Article',
|
293
239
|
'book chapter', 'Book chapter', 'Book Chapter',
|
@@ -303,13 +249,18 @@ module Stanford
|
|
303
249
|
'thesis', 'Thesis'
|
304
250
|
]
|
305
251
|
val = []
|
306
|
-
genres = term_values(:genre)
|
307
|
-
issuance = term_values([:origin_info, :issuance])
|
252
|
+
genres = term_values(:genre) || []
|
253
|
+
issuance = term_values([:origin_info, :issuance]) || []
|
254
|
+
frequency = term_values([:origin_info, :frequency]) || []
|
255
|
+
|
256
|
+
val << 'Dataset' if genres.include?('dataset') || genres.include?('Dataset')
|
257
|
+
|
308
258
|
types.each do |type|
|
309
|
-
|
259
|
+
val << 'Archive/Manuscript' if type.manuscript == 'yes'
|
260
|
+
|
261
|
+
case type.text
|
310
262
|
when 'cartographic'
|
311
263
|
val << 'Map'
|
312
|
-
val.delete 'Software/Multimedia'
|
313
264
|
when 'mixed material'
|
314
265
|
val << 'Archive/Manuscript'
|
315
266
|
when 'moving image'
|
@@ -317,11 +268,7 @@ module Stanford
|
|
317
268
|
when 'notated music'
|
318
269
|
val << 'Music score'
|
319
270
|
when 'software, multimedia'
|
320
|
-
|
321
|
-
val << 'Dataset'
|
322
|
-
elsif !val.include?('Map')
|
323
|
-
val << 'Software/Multimedia'
|
324
|
-
end
|
271
|
+
val << 'Software/Multimedia' unless types.map(&:text).include?('cartographic') || (genres.include?('dataset') || genres.include?('Dataset'))
|
325
272
|
when 'sound recording-musical'
|
326
273
|
val << 'Music recording'
|
327
274
|
when 'sound recording-nonmusical', 'sound recording'
|
@@ -329,11 +276,14 @@ module Stanford
|
|
329
276
|
when 'still image'
|
330
277
|
val << 'Image'
|
331
278
|
when 'text'
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
val << '
|
279
|
+
is_explicitly_a_book = type.manuscript != 'yes' && (issuance.include?('monographic') || !(genres & article_genres).empty? || !(genres & book_genres).empty?)
|
280
|
+
is_periodical = issuance.include?('continuing') || issuance.include?('serial') || frequency.any? { |x| !x.empty? }
|
281
|
+
is_archived_website = genres.any? { |x| x.casecmp('archived website') == 0 }
|
282
|
+
|
283
|
+
val << 'Book' if is_explicitly_a_book
|
284
|
+
val << 'Journal/Periodical' if is_periodical
|
285
|
+
val << 'Archived website' if is_archived_website
|
286
|
+
val << 'Book' unless is_explicitly_a_book || is_periodical || is_archived_website
|
337
287
|
when 'three dimensional object'
|
338
288
|
val << 'Object'
|
339
289
|
end
|
@@ -341,24 +291,22 @@ module Stanford
|
|
341
291
|
val.uniq
|
342
292
|
end
|
343
293
|
|
344
|
-
# https://github.com/sul-dlss/stanford-mods/issues/66
|
345
|
-
# Limit genre values to Government document, Conference proceedings,
|
346
|
-
# Technical report and Thesis/Dissertation
|
347
294
|
# @return <Array[String]> values for the genre facet in SearchWorks
|
348
295
|
def sw_genre
|
349
296
|
genres = term_values(:genre)
|
350
297
|
return [] unless genres
|
351
|
-
|
352
|
-
|
353
|
-
val << 'Thesis/Dissertation' if genres
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
298
|
+
val = genres.map(&:to_s)
|
299
|
+
thesis_pub = ['thesis', 'Thesis']
|
300
|
+
val << 'Thesis/Dissertation' if (genres & thesis_pub).any?
|
301
|
+
|
302
|
+
conf_pub = ['conference publication', 'Conference publication', 'Conference Publication']
|
303
|
+
gov_pub = ['government publication', 'Government publication', 'Government Publication']
|
304
|
+
tech_rpt = ['technical report', 'Technical report', 'Technical Report']
|
305
|
+
|
306
|
+
val << 'Conference proceedings' if (genres & conf_pub).any?
|
307
|
+
val << 'Government document' if (genres & gov_pub).any?
|
308
|
+
val << 'Technical report' if (genres & tech_rpt).any?
|
309
|
+
|
362
310
|
val.uniq
|
363
311
|
end
|
364
312
|
|
@@ -55,12 +55,11 @@ module Stanford
|
|
55
55
|
end
|
56
56
|
|
57
57
|
# Values are the contents of:
|
58
|
-
# mods/genre
|
59
58
|
# mods/subject/topic
|
60
59
|
# @return [Array<String>] values for the topic_search Solr field for this document or nil if none
|
61
60
|
def topic_search
|
62
61
|
@topic_search ||= begin
|
63
|
-
vals =
|
62
|
+
vals = []
|
64
63
|
vals.concat(subject_topics) if subject_topics
|
65
64
|
vals.empty? ? nil : vals
|
66
65
|
end
|
data/spec/imprint_spec.rb
CHANGED
@@ -18,7 +18,8 @@ describe Stanford::Mods::Imprint do
|
|
18
18
|
'<dateCreated keyDate="yes">1964</dateCreated><dateIssued>195u</dateIssued>' => [1964],
|
19
19
|
'<dateIssued>1964</dateIssued><dateCreated>195u</dateCreated>' => [1964],
|
20
20
|
'<dateIssued point="start">195u</dateIssued><dateIssued point="end">1964</dateIssued>' => (1950..1964).to_a,
|
21
|
-
'<dateIssued>1964</dateIssued><dateIssued>195u</dateIssued>' => [1964] + (1950..1959).to_a
|
21
|
+
'<dateIssued>1964</dateIssued><dateIssued>195u</dateIssued>' => [1964] + (1950..1959).to_a,
|
22
|
+
'<dateCreated keyDate="yes" encoding="w3cdtf" point="start">1966</dateCreated><dateCreated encoding="w3cdtf" point="end">1967</dateCreated>' => [1966,1967]
|
22
23
|
}.each do |example, expected|
|
23
24
|
it 'works' do
|
24
25
|
smods_rec.from_str("#{mods_origin_info_start_str}
|
@@ -5,269 +5,6 @@ describe "Format fields (searchworks.rb)" do
|
|
5
5
|
@ns_decl = "xmlns='#{Mods::MODS_NS}'"
|
6
6
|
end
|
7
7
|
|
8
|
-
# @deprecated: this is no longer used in SW, Revs or Spotlight Jan 2016
|
9
|
-
context "format" do
|
10
|
-
context "Book:" do
|
11
|
-
context "typeOfResource text," do
|
12
|
-
it 'originInfo/issuance monographic' do
|
13
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><originInfo><issuance>monographic</issuance></originInfo></mods>"
|
14
|
-
@smods_rec.from_str(m)
|
15
|
-
expect(@smods_rec.format).to eq ['Book']
|
16
|
-
end
|
17
|
-
context "genre" do
|
18
|
-
it "'book chapter'", email: 'mods-squad 2014-05-22, Joanna Dyla' do
|
19
|
-
m = "<mods #{@ns_decl}><genre>book chapter</genre><typeOfResource>text</typeOfResource></mods>"
|
20
|
-
@smods_rec.from_str(m)
|
21
|
-
expect(@smods_rec.format).to eq ['Book']
|
22
|
-
m = "<mods #{@ns_decl}><genre>Book chapter</genre><typeOfResource>text</typeOfResource></mods>"
|
23
|
-
@smods_rec.from_str(m)
|
24
|
-
expect(@smods_rec.format).to eq ['Book']
|
25
|
-
m = "<mods #{@ns_decl}><genre>Book Chapter</genre><typeOfResource>text</typeOfResource></mods>"
|
26
|
-
@smods_rec.from_str(m)
|
27
|
-
expect(@smods_rec.format).to eq ['Book']
|
28
|
-
end
|
29
|
-
it "'issue brief'", email: 'mods-squad 2014-05-22, Joanna Dyla' do
|
30
|
-
m = "<mods #{@ns_decl}><genre>issue brief</genre><typeOfResource>text</typeOfResource></mods>"
|
31
|
-
@smods_rec.from_str(m)
|
32
|
-
expect(@smods_rec.format).to eq ['Book']
|
33
|
-
m = "<mods #{@ns_decl}><genre>Issue brief</genre><typeOfResource>text</typeOfResource></mods>"
|
34
|
-
@smods_rec.from_str(m)
|
35
|
-
expect(@smods_rec.format).to eq ['Book']
|
36
|
-
m = "<mods #{@ns_decl}><genre>Issue Brief</genre><typeOfResource>text</typeOfResource></mods>"
|
37
|
-
@smods_rec.from_str(m)
|
38
|
-
expect(@smods_rec.format).to eq ['Book']
|
39
|
-
end
|
40
|
-
it "'librettos'", jira: 'INDEX-98' do
|
41
|
-
m = "<mods #{@ns_decl}><genre>librettos</genre><typeOfResource>text</typeOfResource></mods>"
|
42
|
-
@smods_rec.from_str(m)
|
43
|
-
expect(@smods_rec.format).to eq ['Book']
|
44
|
-
m = "<mods #{@ns_decl}><genre>Librettos</genre><typeOfResource>text</typeOfResource></mods>"
|
45
|
-
@smods_rec.from_str(m)
|
46
|
-
expect(@smods_rec.format).to eq ['Book']
|
47
|
-
end
|
48
|
-
it "'libretto' isn't valid", jira: 'INDEX-98' do
|
49
|
-
m = "<mods #{@ns_decl}><genre>libretto</genre><typeOfResource>text</typeOfResource></mods>"
|
50
|
-
@smods_rec.from_str(m)
|
51
|
-
expect(@smods_rec.format).to eq []
|
52
|
-
end
|
53
|
-
it "'project report'", jira: 'GRYP-170', github: 'gdor-indexer/#7' do
|
54
|
-
m = "<mods #{@ns_decl}><genre>project report</genre><typeOfResource>text</typeOfResource></mods>"
|
55
|
-
@smods_rec.from_str(m)
|
56
|
-
expect(@smods_rec.format).to eq ['Book']
|
57
|
-
m = "<mods #{@ns_decl}><genre>Project report</genre><typeOfResource>text</typeOfResource></mods>"
|
58
|
-
@smods_rec.from_str(m)
|
59
|
-
expect(@smods_rec.format).to eq ['Book']
|
60
|
-
m = "<mods #{@ns_decl}><genre>Project Report</genre><typeOfResource>text</typeOfResource></mods>"
|
61
|
-
@smods_rec.from_str(m)
|
62
|
-
expect(@smods_rec.format).to eq ['Book']
|
63
|
-
end
|
64
|
-
it "'report' isn't valid", jira: 'GRYP-170', github: 'gdor-indexer/#7' do
|
65
|
-
m = "<mods #{@ns_decl}><genre>report</genre><typeOfResource>text</typeOfResource></mods>"
|
66
|
-
@smods_rec.from_str(m)
|
67
|
-
expect(@smods_rec.format).to eq []
|
68
|
-
end
|
69
|
-
it "'technical report'", jira: 'GRYPHONDOR-207' do
|
70
|
-
m = "<mods #{@ns_decl}><genre>technical report</genre><typeOfResource>text</typeOfResource></mods>"
|
71
|
-
@smods_rec.from_str(m)
|
72
|
-
expect(@smods_rec.format).to eq ['Book']
|
73
|
-
m = "<mods #{@ns_decl}><genre>Technical report</genre><typeOfResource>text</typeOfResource></mods>"
|
74
|
-
@smods_rec.from_str(m)
|
75
|
-
expect(@smods_rec.format).to eq ['Book']
|
76
|
-
m = "<mods #{@ns_decl}><genre>Technical Report</genre><typeOfResource>text</typeOfResource></mods>"
|
77
|
-
@smods_rec.from_str(m)
|
78
|
-
expect(@smods_rec.format).to eq ['Book']
|
79
|
-
end
|
80
|
-
it "'working paper'", email: 'mods-squad 2014-05-22, Joanna Dyla' do
|
81
|
-
m = "<mods #{@ns_decl}><genre>working paper</genre><typeOfResource>text</typeOfResource></mods>"
|
82
|
-
@smods_rec.from_str(m)
|
83
|
-
expect(@smods_rec.format).to eq ['Book']
|
84
|
-
m = "<mods #{@ns_decl}><genre>Working paper</genre><typeOfResource>text</typeOfResource></mods>"
|
85
|
-
@smods_rec.from_str(m)
|
86
|
-
expect(@smods_rec.format).to eq ['Book']
|
87
|
-
m = "<mods #{@ns_decl}><genre>Working Paper</genre><typeOfResource>text</typeOfResource></mods>"
|
88
|
-
@smods_rec.from_str(m)
|
89
|
-
expect(@smods_rec.format).to eq ['Book']
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end # 'Book'
|
94
|
-
|
95
|
-
context "Computer File: typeOfResource 'software, multimedia'" do
|
96
|
-
it "no genre (e.g. Dataset)" do
|
97
|
-
m = "<mods #{@ns_decl}><typeOfResource>software, multimedia</typeOfResource></mods>"
|
98
|
-
@smods_rec.from_str(m)
|
99
|
-
expect(@smods_rec.format).to eq ['Computer File']
|
100
|
-
end
|
101
|
-
it "genre 'game'", jira: 'GRYPHONDOR-207' do
|
102
|
-
m = "<mods #{@ns_decl}><genre>game</genre><typeOfResource>software, multimedia</typeOfResource></mods>"
|
103
|
-
@smods_rec.from_str(m)
|
104
|
-
expect(@smods_rec.format).to eq ['Computer File']
|
105
|
-
m = "<mods #{@ns_decl}><genre>Game</genre><typeOfResource>software, multimedia</typeOfResource></mods>"
|
106
|
-
@smods_rec.from_str(m)
|
107
|
-
expect(@smods_rec.format).to eq ['Computer File']
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
it "Conference Proceedings: typeOfResource 'text', genre 'conference publication'", jira: 'GRYPHONDOR-207' do
|
112
|
-
m = "<mods #{@ns_decl}><genre>conference publication</genre><typeOfResource>text</typeOfResource></mods>"
|
113
|
-
@smods_rec.from_str(m)
|
114
|
-
expect(@smods_rec.format).to eq ['Conference Proceedings']
|
115
|
-
m = "<mods #{@ns_decl}><genre>Conference publication</genre><typeOfResource>text</typeOfResource></mods>"
|
116
|
-
@smods_rec.from_str(m)
|
117
|
-
expect(@smods_rec.format).to eq ['Conference Proceedings']
|
118
|
-
m = "<mods #{@ns_decl}><genre>Conference Publication</genre><typeOfResource>text</typeOfResource></mods>"
|
119
|
-
@smods_rec.from_str(m)
|
120
|
-
expect(@smods_rec.format).to eq ['Conference Proceedings']
|
121
|
-
end
|
122
|
-
|
123
|
-
context "Journal/Periodical: typeOfResource 'text'," do
|
124
|
-
it "genre 'article" do
|
125
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre>article</genre></mods>"
|
126
|
-
@smods_rec.from_str(m)
|
127
|
-
expect(@smods_rec.format).to eq ['Journal/Periodical']
|
128
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre>Article</genre></mods>"
|
129
|
-
@smods_rec.from_str(m)
|
130
|
-
expect(@smods_rec.format).to eq ['Journal/Periodical']
|
131
|
-
end
|
132
|
-
it "originInfo/issuance 'continuing'" do
|
133
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><originInfo><issuance>continuing</issuance></originInfo></mods>"
|
134
|
-
@smods_rec.from_str(m)
|
135
|
-
expect(@smods_rec.format).to eq ['Journal/Periodical']
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
it "Image: typeOfResource 'still image'" do
|
140
|
-
m = "<mods #{@ns_decl}><typeOfResource>still image</typeOfResource></mods>"
|
141
|
-
@smods_rec.from_str(m)
|
142
|
-
expect(@smods_rec.format).to eq ['Image']
|
143
|
-
end
|
144
|
-
|
145
|
-
it "Manuscript/Archive: typeOfResource 'mixed material'" do
|
146
|
-
m = "<mods #{@ns_decl}><typeOfResource>mixed material</typeOfResource></mods>"
|
147
|
-
@smods_rec.from_str(m)
|
148
|
-
expect(@smods_rec.format).to eq ['Manuscript/Archive']
|
149
|
-
end
|
150
|
-
|
151
|
-
it "Map/Globe: typeOfResource 'cartographic'" do
|
152
|
-
m = "<mods #{@ns_decl}><typeOfResource>cartographic</typeOfResource></mods>"
|
153
|
-
@smods_rec.from_str(m)
|
154
|
-
expect(@smods_rec.format).to eq ['Map/Globe']
|
155
|
-
end
|
156
|
-
|
157
|
-
it "Music - Recording: typeOfResource 'sound recording-musical'", jira: 'GRYPHONDOR-207' do
|
158
|
-
m = "<mods #{@ns_decl}><typeOfResource>sound recording-musical</typeOfResource></mods>"
|
159
|
-
@smods_rec.from_str(m)
|
160
|
-
expect(@smods_rec.format).to eq ['Music - Recording']
|
161
|
-
end
|
162
|
-
|
163
|
-
it "Music - Score: typeOfResource 'notated music'" do
|
164
|
-
m = "<mods #{@ns_decl}><typeOfResource>notated music</typeOfResource></mods>"
|
165
|
-
@smods_rec.from_str(m)
|
166
|
-
expect(@smods_rec.format).to eq ['Music - Score']
|
167
|
-
end
|
168
|
-
|
169
|
-
it "Other: typeOfResource 'text', genre 'student project report'", email: 'from Vitus, August 16, 2013' do
|
170
|
-
m = "<mods #{@ns_decl}><genre>student project report</genre><typeOfResource>text</typeOfResource></mods>"
|
171
|
-
@smods_rec.from_str(m)
|
172
|
-
expect(@smods_rec.format).to eq ['Other']
|
173
|
-
m = "<mods #{@ns_decl}><genre>Student project report</genre><typeOfResource>text</typeOfResource></mods>"
|
174
|
-
@smods_rec.from_str(m)
|
175
|
-
expect(@smods_rec.format).to eq ['Other']
|
176
|
-
m = "<mods #{@ns_decl}><genre>Student Project report</genre><typeOfResource>text</typeOfResource></mods>"
|
177
|
-
@smods_rec.from_str(m)
|
178
|
-
expect(@smods_rec.format).to eq ['Other']
|
179
|
-
m = "<mods #{@ns_decl}><genre>Student Project Report</genre><typeOfResource>text</typeOfResource></mods>"
|
180
|
-
@smods_rec.from_str(m)
|
181
|
-
expect(@smods_rec.format).to eq ['Other']
|
182
|
-
end
|
183
|
-
|
184
|
-
context "Sound Recording:" do
|
185
|
-
it "typeOfResource 'sound recording-nonmusical', genre 'sound", jira: 'GRYPHONDOR-207' do
|
186
|
-
m = "<mods #{@ns_decl}><genre>sound</genre><typeOfResource>sound recording-nonmusical</typeOfResource></mods>"
|
187
|
-
@smods_rec.from_str(m)
|
188
|
-
expect(@smods_rec.format).to eq ['Sound Recording']
|
189
|
-
m = "<mods #{@ns_decl}><genre>Sound</genre><typeOfResource>sound recording-nonmusical</typeOfResource></mods>"
|
190
|
-
@smods_rec.from_str(m)
|
191
|
-
expect(@smods_rec.format).to eq ['Sound Recording']
|
192
|
-
end
|
193
|
-
it "typeOfResource 'sound recording', genre 'sound", jira: 'INDEX-94' do
|
194
|
-
m = "<mods #{@ns_decl}><genre>sound</genre><typeOfResource>sound recording</typeOfResource></mods>"
|
195
|
-
@smods_rec.from_str(m)
|
196
|
-
expect(@smods_rec.format).to eq ['Sound Recording']
|
197
|
-
m = "<mods #{@ns_decl}><genre>Sound</genre><typeOfResource>sound recording</typeOfResource></mods>"
|
198
|
-
@smods_rec.from_str(m)
|
199
|
-
expect(@smods_rec.format).to eq ['Sound Recording']
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
it "Thesis: typeOfResource 'text', genre 'thesis'" do
|
204
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre>thesis</genre></mods>"
|
205
|
-
@smods_rec.from_str(m)
|
206
|
-
expect(@smods_rec.format).to eq ['Thesis']
|
207
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre>Thesis</genre></mods>"
|
208
|
-
@smods_rec.from_str(m)
|
209
|
-
expect(@smods_rec.format).to eq ['Thesis']
|
210
|
-
end
|
211
|
-
|
212
|
-
context "Video: typeOfResource 'moving image'" do
|
213
|
-
it "no genre" do
|
214
|
-
m = "<mods #{@ns_decl}><typeOfResource>moving image</typeOfResource></mods>"
|
215
|
-
@smods_rec.from_str(m)
|
216
|
-
expect(@smods_rec.format).to eq ['Video']
|
217
|
-
end
|
218
|
-
it "genre 'motion picture'", jira: 'GRYPHONDOR-207' do
|
219
|
-
m = "<mods #{@ns_decl}><genre>motion picture</genre><typeOfResource>moving image</typeOfResource></mods>"
|
220
|
-
@smods_rec.from_str(m)
|
221
|
-
expect(@smods_rec.format).to eq ['Video']
|
222
|
-
m = "<mods #{@ns_decl}><genre>Motion Picture</genre><typeOfResource>moving image</typeOfResource></mods>"
|
223
|
-
@smods_rec.from_str(m)
|
224
|
-
expect(@smods_rec.format).to eq ['Video']
|
225
|
-
m = "<mods #{@ns_decl}><genre>Motion Picture</genre><typeOfResource>moving image</typeOfResource></mods>"
|
226
|
-
@smods_rec.from_str(m)
|
227
|
-
expect(@smods_rec.format).to eq ['Video']
|
228
|
-
end
|
229
|
-
end
|
230
|
-
|
231
|
-
context "multiple format values", jira: 'INDEX-32' do
|
232
|
-
it "multiple typeOfResource elements" do
|
233
|
-
m = "<mods #{@ns_decl}><typeOfResource>moving image</typeOfResource><typeOfResource>sound recording</typeOfResource></mods>"
|
234
|
-
@smods_rec.from_str(m)
|
235
|
-
expect(@smods_rec.format).to eq ['Video', 'Sound Recording']
|
236
|
-
end
|
237
|
-
it "multiple genre elements, single typeOfResource" do
|
238
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre>librettos</genre><genre>article</genre></mods>"
|
239
|
-
@smods_rec.from_str(m)
|
240
|
-
expect(@smods_rec.format).to eq ['Book', 'Journal/Periodical']
|
241
|
-
end
|
242
|
-
it "mish mash" do
|
243
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><typeOfResource>still image</typeOfResource><genre>librettos</genre><genre>article</genre></mods>"
|
244
|
-
@smods_rec.from_str(m)
|
245
|
-
expect(@smods_rec.format).to eq ['Book', 'Journal/Periodical', 'Image']
|
246
|
-
end
|
247
|
-
it "doesn't give duplicate values" do
|
248
|
-
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre>librettos</genre><genre>issue brief</genre></mods>"
|
249
|
-
@smods_rec.from_str(m)
|
250
|
-
expect(@smods_rec.format).to eq ['Book']
|
251
|
-
end
|
252
|
-
end
|
253
|
-
|
254
|
-
it "empty Array if no typeOfResource field" do
|
255
|
-
m = "<mods #{@ns_decl}><originInfo>
|
256
|
-
<dateCreated>1904</dateCreated>
|
257
|
-
</originInfo></mods>"
|
258
|
-
@smods_rec.from_str(m)
|
259
|
-
expect(@smods_rec.format).to eq []
|
260
|
-
end
|
261
|
-
|
262
|
-
it "empty Array if weird typeOfResource value" do
|
263
|
-
m = "<mods #{@ns_decl}>
|
264
|
-
<typeOfResource>foo</typeOfResource>
|
265
|
-
</mods>"
|
266
|
-
@smods_rec.from_str(m)
|
267
|
-
expect(@smods_rec.format).to eq []
|
268
|
-
end
|
269
|
-
end # format
|
270
|
-
|
271
8
|
context "format_main" do
|
272
9
|
it "3D object: typeOfResource 'three dimensional object'" do
|
273
10
|
m = "<mods #{@ns_decl}><typeOfResource>three dimensional object</typeOfResource></mods>"
|
@@ -329,10 +66,10 @@ describe "Format fields (searchworks.rb)" do
|
|
329
66
|
@smods_rec.from_str(m)
|
330
67
|
expect(@smods_rec.format_main).to eq ['Book']
|
331
68
|
end
|
332
|
-
it "'report' isn't valid", jira: 'GRYP-170', github: 'gdor-indexer/#7' do
|
69
|
+
it "'report' isn't valid, so defaults to book", jira: 'GRYP-170', github: 'gdor-indexer/#7' do
|
333
70
|
m = "<mods #{@ns_decl}><genre>report</genre><typeOfResource>text</typeOfResource></mods>"
|
334
71
|
@smods_rec.from_str(m)
|
335
|
-
expect(@smods_rec.format_main).to eq []
|
72
|
+
expect(@smods_rec.format_main).to eq ['Book']
|
336
73
|
end
|
337
74
|
it "'student project report'", consul: '/NGDE/Format 2014-05-28' do
|
338
75
|
m = "<mods #{@ns_decl}><genre authority=\"local\">student project report</genre><typeOfResource>text</typeOfResource></mods>"
|
@@ -400,10 +137,10 @@ describe "Format fields (searchworks.rb)" do
|
|
400
137
|
@smods_rec.from_str(m)
|
401
138
|
expect(@smods_rec.format_main).to eq ['Book']
|
402
139
|
end
|
403
|
-
it "'libretto' isn't valid", jira: 'INDEX-98' do
|
140
|
+
it "'libretto' isn't valid, so it defaults to book", jira: 'INDEX-98' do
|
404
141
|
m = "<mods #{@ns_decl}><genre>libretto</genre><typeOfResource>text</typeOfResource></mods>"
|
405
142
|
@smods_rec.from_str(m)
|
406
|
-
expect(@smods_rec.format_main).to eq []
|
143
|
+
expect(@smods_rec.format_main).to eq ['Book']
|
407
144
|
end
|
408
145
|
it "'librettos'", jira: 'INDEX-98' do
|
409
146
|
m = "<mods #{@ns_decl}><genre>librettos</genre><typeOfResource>text</typeOfResource></mods>"
|
@@ -578,57 +315,57 @@ describe "Format fields (searchworks.rb)" do
|
|
578
315
|
end # format_main
|
579
316
|
|
580
317
|
context "sw_genre" do
|
581
|
-
it "
|
318
|
+
it "includes values that are not in the prescribed list" do
|
582
319
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Not on the list</genre><typeOfResource>text</typeOfResource></mods>"
|
583
320
|
@smods_rec.from_str(m)
|
584
|
-
expect(@smods_rec.sw_genre).to eq []
|
321
|
+
expect(@smods_rec.sw_genre).to eq ['Not on the list']
|
585
322
|
end
|
586
323
|
it "Conference proceedings: typeOfResource 'text', genre 'conference publication'" do
|
587
324
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">conference publication</genre><typeOfResource>text</typeOfResource></mods>"
|
588
325
|
@smods_rec.from_str(m)
|
589
|
-
expect(@smods_rec.sw_genre).to eq ['Conference proceedings']
|
326
|
+
expect(@smods_rec.sw_genre).to eq ['conference publication', 'Conference proceedings']
|
590
327
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Conference publication</genre><typeOfResource>text</typeOfResource></mods>"
|
591
328
|
@smods_rec.from_str(m)
|
592
|
-
expect(@smods_rec.sw_genre).to eq ['Conference proceedings']
|
329
|
+
expect(@smods_rec.sw_genre).to eq ['Conference publication', 'Conference proceedings']
|
593
330
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Conference Publication</genre><typeOfResource>text</typeOfResource></mods>"
|
594
331
|
@smods_rec.from_str(m)
|
595
|
-
expect(@smods_rec.sw_genre).to eq ['Conference proceedings']
|
332
|
+
expect(@smods_rec.sw_genre).to eq ['Conference Publication', 'Conference proceedings']
|
596
333
|
end
|
597
334
|
it "Thesis/Dissertation: typeOfResource 'text', genre 'thesis'" do
|
598
335
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">thesis</genre><typeOfResource>text</typeOfResource></mods>"
|
599
336
|
@smods_rec.from_str(m)
|
600
|
-
expect(@smods_rec.sw_genre).to eq ['Thesis/Dissertation']
|
337
|
+
expect(@smods_rec.sw_genre).to eq ['thesis', 'Thesis/Dissertation']
|
601
338
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Thesis</genre><typeOfResource>text</typeOfResource></mods>"
|
602
339
|
@smods_rec.from_str(m)
|
603
|
-
expect(@smods_rec.sw_genre).to eq ['Thesis/Dissertation']
|
340
|
+
expect(@smods_rec.sw_genre).to eq ['Thesis', 'Thesis/Dissertation']
|
604
341
|
end
|
605
342
|
it "Government Document: typeOfResource 'text', genre 'government publication'" do
|
606
343
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">government publication</genre><typeOfResource>text</typeOfResource></mods>"
|
607
344
|
@smods_rec.from_str(m)
|
608
|
-
expect(@smods_rec.sw_genre).to eq ['Government document']
|
345
|
+
expect(@smods_rec.sw_genre).to eq ['government publication', 'Government document']
|
609
346
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Government publication</genre><typeOfResource>text</typeOfResource></mods>"
|
610
347
|
@smods_rec.from_str(m)
|
611
|
-
expect(@smods_rec.sw_genre).to eq ['Government document']
|
348
|
+
expect(@smods_rec.sw_genre).to eq ['Government publication', 'Government document']
|
612
349
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Government Publication</genre><typeOfResource>text</typeOfResource></mods>"
|
613
350
|
@smods_rec.from_str(m)
|
614
|
-
expect(@smods_rec.sw_genre).to eq ['Government document']
|
351
|
+
expect(@smods_rec.sw_genre).to eq ['Government Publication', 'Government document']
|
615
352
|
m = "<mods #{@ns_decl}><genre>government publication</genre><typeOfResource>text</typeOfResource></mods>"
|
616
353
|
@smods_rec.from_str(m)
|
617
|
-
expect(@smods_rec.sw_genre).to eq ['Government document']
|
354
|
+
expect(@smods_rec.sw_genre).to eq ['government publication', 'Government document']
|
618
355
|
end
|
619
356
|
it "Technical Report: typeOfResource 'text', genre 'technical report'" do
|
620
357
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">technical report</genre><typeOfResource>text</typeOfResource></mods>"
|
621
358
|
@smods_rec.from_str(m)
|
622
|
-
expect(@smods_rec.sw_genre).to eq ['Technical report']
|
359
|
+
expect(@smods_rec.sw_genre).to eq ['technical report', 'Technical report']
|
623
360
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Technical report</genre><typeOfResource>text</typeOfResource></mods>"
|
624
361
|
@smods_rec.from_str(m)
|
625
362
|
expect(@smods_rec.sw_genre).to eq ['Technical report']
|
626
363
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Technical Report</genre><typeOfResource>text</typeOfResource></mods>"
|
627
364
|
@smods_rec.from_str(m)
|
628
|
-
expect(@smods_rec.sw_genre).to eq ['Technical report']
|
365
|
+
expect(@smods_rec.sw_genre).to eq ['Technical Report', 'Technical report']
|
629
366
|
m = "<mods #{@ns_decl}><genre>technical report</genre><typeOfResource>text</typeOfResource></mods>"
|
630
367
|
@smods_rec.from_str(m)
|
631
|
-
expect(@smods_rec.sw_genre).to eq ['Technical report']
|
368
|
+
expect(@smods_rec.sw_genre).to eq ['technical report', 'Technical report']
|
632
369
|
end
|
633
370
|
it "it does not include Archived website: typeOfResource 'text', genre 'archived website'" do
|
634
371
|
m = "<mods #{@ns_decl}><genre authority=\"marcgt\">archived website</genre><typeOfResource>text</typeOfResource></mods>"
|
@@ -638,13 +375,13 @@ describe "Format fields (searchworks.rb)" do
|
|
638
375
|
it "capitalizes the first letter of a genre value" do
|
639
376
|
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre authority=\"marcgt\">technical report</genre></mods>"
|
640
377
|
@smods_rec.from_str(m)
|
641
|
-
expect(@smods_rec.sw_genre).to eq ['Technical report']
|
378
|
+
expect(@smods_rec.sw_genre).to eq ['technical report', 'Technical report']
|
642
379
|
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre authority=\"marcgt\">Technical report</genre></mods>"
|
643
380
|
@smods_rec.from_str(m)
|
644
381
|
expect(@smods_rec.sw_genre).to eq ['Technical report']
|
645
382
|
m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre authority=\"marcgt\">Technical Report</genre></mods>"
|
646
383
|
@smods_rec.from_str(m)
|
647
|
-
expect(@smods_rec.sw_genre).to eq ['Technical report']
|
384
|
+
expect(@smods_rec.sw_genre).to eq ['Technical Report', 'Technical report']
|
648
385
|
end
|
649
386
|
# NOTE: may need to remove plurals and/or trailing punctuation in future
|
650
387
|
it "returns all genre values" do
|
@@ -655,7 +392,7 @@ describe "Format fields (searchworks.rb)" do
|
|
655
392
|
<genre>thesis</genre>
|
656
393
|
</mods>"
|
657
394
|
@smods_rec.from_str(m)
|
658
|
-
expect(@smods_rec.sw_genre).to eq ['Thesis/Dissertation', 'Conference proceedings', 'Government document']
|
395
|
+
expect(@smods_rec.sw_genre).to eq ['government publication', 'conference publication', 'thesis', 'Thesis/Dissertation', 'Conference proceedings', 'Government document']
|
659
396
|
end
|
660
397
|
it "doesn't have duplicates" do
|
661
398
|
m = "<mods #{@ns_decl}>
|
@@ -665,7 +402,7 @@ describe "Format fields (searchworks.rb)" do
|
|
665
402
|
<genre>Conference publication</genre>
|
666
403
|
</mods>"
|
667
404
|
@smods_rec.from_str(m)
|
668
|
-
expect(@smods_rec.sw_genre).to eq ['Conference proceedings', 'Technical report']
|
405
|
+
expect(@smods_rec.sw_genre).to eq ['conference publication', 'technical report', 'Conference publication', 'Conference proceedings', 'Technical report']
|
669
406
|
end
|
670
407
|
it "empty Array if no genre values" do
|
671
408
|
m = "<mods #{@ns_decl}>
|
@@ -44,9 +44,6 @@ describe "Subject fields (searchworks.rb)" do
|
|
44
44
|
it "should contain subject <topic> subelement data" do
|
45
45
|
expect(@smods_rec.topic_search).to include(@topic)
|
46
46
|
end
|
47
|
-
it "should contain top level <genre> element data" do
|
48
|
-
expect(@smods_rec.topic_search).to include(@genre)
|
49
|
-
end
|
50
47
|
it "should not contain other subject element data" do
|
51
48
|
expect(@smods_rec.topic_search).not_to include(@cart_coord)
|
52
49
|
expect(@smods_rec.topic_search).not_to include(@s_genre)
|
@@ -64,12 +61,6 @@ describe "Subject fields (searchworks.rb)" do
|
|
64
61
|
@smods_rec.from_str(m)
|
65
62
|
expect(@smods_rec.topic_search).to eq([@topic])
|
66
63
|
end
|
67
|
-
it "should not be nil if there are only <genre> elements (no subject/topic elements)" do
|
68
|
-
m = "<mods #{@ns_decl}><genre>#{@genre}</genre></mods>"
|
69
|
-
@smods_rec = Stanford::Mods::Record.new
|
70
|
-
@smods_rec.from_str(m)
|
71
|
-
expect(@smods_rec.topic_search).to eq([@genre])
|
72
|
-
end
|
73
64
|
context "topic subelement" do
|
74
65
|
it "should have a separate value for each topic element" do
|
75
66
|
m = "<mods #{@ns_decl}>
|
@@ -280,9 +271,6 @@ describe "Subject fields (searchworks.rb)" do
|
|
280
271
|
@smods_rec.from_str(@ng_mods_no_subject.to_s)
|
281
272
|
expect(@smods_rec.subject_all_search).to be_nil
|
282
273
|
end
|
283
|
-
it "should contain top level <genre> element data" do
|
284
|
-
expect(@smods_rec.subject_all_search).to include(@genre)
|
285
|
-
end
|
286
274
|
it "should not contain cartographic sub element" do
|
287
275
|
expect(@smods_rec.subject_all_search).not_to include(@cart_coord)
|
288
276
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stanford-mods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naomi Dushay
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-10-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mods
|