cul_hydra 1.4.15 → 1.4.16
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8804232f1ca85e31ad2a0bfa1bc63d4767cfdafa
|
4
|
+
data.tar.gz: 7d63e63050c095ad14acb31ca1398fd0bda7dd03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb1ff057ca22ba94f107aeae436b855d7c31a2e0c21ba7153e408afb5855bbb0bec1f13b55ccc4e5223944c643774f47983dc37b8851614e503857f63da3b3c0
|
7
|
+
data.tar.gz: c399320ba5fe6dd4e39b2ea80aa67c59979dcd5911b495b8aee026b5ee144b16e011bc5dbdb64de5c143ea50cf0c2f0c532ee011a91d949cb22b2c0666cd08e1
|
@@ -12,6 +12,10 @@
|
|
12
12
|
<namePart type="date">1829-1745</namePart>
|
13
13
|
<role>
|
14
14
|
<roleTerm authority="marcrelator" type="code">rcp</roleTerm>
|
15
|
+
<roleTerm authority="marcrelator" type="text">Addressee</roleTerm>
|
16
|
+
</role>
|
17
|
+
<role>
|
18
|
+
<roleTerm type="text">Owner/Agent</roleTerm>
|
15
19
|
</role>
|
16
20
|
</name>
|
17
21
|
<name>
|
@@ -27,6 +31,7 @@
|
|
27
31
|
<namePart>"Dear Brother"</namePart>
|
28
32
|
<role>
|
29
33
|
<roleTerm authority="marcrelator" type="code">rcp</roleTerm>
|
34
|
+
<roleTerm authority="marcrelator" type="text">Addressee</roleTerm>
|
30
35
|
</role>
|
31
36
|
</name>
|
32
37
|
<name usage="primary">
|
@@ -22,6 +22,7 @@ module Cul::Hydra::Solrizer
|
|
22
22
|
def maps_field?(field_key)
|
23
23
|
value_mapper.maps_field? field_key
|
24
24
|
end
|
25
|
+
|
25
26
|
def normalize(t, strip_punctuation=false)
|
26
27
|
# strip whitespace
|
27
28
|
n_t = t.dup.strip
|
@@ -45,6 +46,11 @@ module Cul::Hydra::Solrizer
|
|
45
46
|
end
|
46
47
|
n_t
|
47
48
|
end
|
49
|
+
|
50
|
+
def role_text_to_solr_field_name(role_text)
|
51
|
+
role_text = normalize(role_text, false)
|
52
|
+
('role_' + role_text.gsub(/[^A-z]/, '_').downcase + '_ssim').gsub(/_+/, '_')
|
53
|
+
end
|
48
54
|
end
|
49
55
|
|
50
56
|
extend ClassMethods
|
@@ -382,6 +388,28 @@ module Cul::Hydra::Solrizer
|
|
382
388
|
coordinate_values
|
383
389
|
end
|
384
390
|
|
391
|
+
def add_names_by_text_role!(solr_doc)
|
392
|
+
# Note: These roles usually come from http://www.loc.gov/marc/relators/relaterm.html,
|
393
|
+
# but there are known cases when non-marc relator values are used (e.g. 'Owner/Agent'),
|
394
|
+
# and those roles won't have marcrelator codes.
|
395
|
+
# e.g. author_ssim = ['Author 1', 'Author 2'] or project_director_ssim = ['Director 1', 'Director 2']
|
396
|
+
roleterm_xpath_segment = "mods:roleTerm[@type='text' and string-length(text()) > 0]"
|
397
|
+
names_with_roles_xpath = "./mods:name/mods:role/#{roleterm_xpath_segment}/ancestor::mods:name"
|
398
|
+
mods.xpath(names_with_roles_xpath, MODS_NS).collect do |node|
|
399
|
+
name_text = node.xpath('./mods:namePart', MODS_NS).collect { |c| c.text }.join(' ')
|
400
|
+
name_text = ModsFieldable.normalize(name_text, true)
|
401
|
+
solr_role_fields = Set.new
|
402
|
+
node.xpath("./mods:role/#{roleterm_xpath_segment}", MODS_NS).collect do |role_node|
|
403
|
+
solr_role_fields << ModsFieldable.role_text_to_solr_field_name(role_node.text)
|
404
|
+
end
|
405
|
+
|
406
|
+
solr_role_fields.each do |solr_field_name|
|
407
|
+
solr_doc[solr_field_name] ||= []
|
408
|
+
solr_doc[solr_field_name] << name_text
|
409
|
+
end
|
410
|
+
end
|
411
|
+
end
|
412
|
+
|
385
413
|
def to_solr(solr_doc={})
|
386
414
|
solr_doc = (defined? super) ? super : solr_doc
|
387
415
|
|
@@ -499,6 +527,9 @@ module Cul::Hydra::Solrizer
|
|
499
527
|
solr_doc['language_language_term_code_ssim'] ||= []
|
500
528
|
solr_doc['language_language_term_code_ssim'] +=languages_iso639_2_code
|
501
529
|
|
530
|
+
# Add names to role-derived keys
|
531
|
+
add_names_by_text_role!(solr_doc)
|
532
|
+
|
502
533
|
solr_doc.each do |k, v|
|
503
534
|
if self.class.maps_field? k
|
504
535
|
solr_doc[k] = self.class.map_value(k, v)
|
data/lib/cul_hydra/version.rb
CHANGED
data/lib/cul_hydra/version.rb~
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cul_hydra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Armintor
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-05-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: blacklight
|
@@ -211,14 +211,14 @@ dependencies:
|
|
211
211
|
name: rubydora
|
212
212
|
requirement: !ruby/object:Gem::Requirement
|
213
213
|
requirements:
|
214
|
-
- - "
|
214
|
+
- - "~>"
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: 2.0.0
|
217
217
|
type: :runtime
|
218
218
|
prerelease: false
|
219
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
220
|
requirements:
|
221
|
-
- - "
|
221
|
+
- - "~>"
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: 2.0.0
|
224
224
|
- !ruby/object:Gem::Dependency
|