cul_hydra 1.4.12 → 1.4.13
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: b00a31481023d67e45fbcc98632503d040588153
|
4
|
+
data.tar.gz: 3ed19c422e4756423635b9d05d8d69ddfc18fb62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbf2ede45ca288de1a36a4d86cd8691950b1202dd8ba46462f84940006f517471bba2fde83f942761c33c64ae21921efbb2eb17d4cd224e85942602f45651258
|
7
|
+
data.tar.gz: 4527adec810592381e6e30b6f02c0f34ca8a256e824ad665aa5255868a8ca262e38cebef17a2ae0eecdc6e88d6a280019b813ed92e38b94e663aa05ce417e187
|
@@ -3,8 +3,9 @@ class ContentAggregator < GenericAggregator
|
|
3
3
|
rdf_types(RDF::PCDM.Object)
|
4
4
|
def to_solr(solr_doc = Hash.new, opts={})
|
5
5
|
solr_doc = super
|
6
|
-
|
7
|
-
|
6
|
+
|
7
|
+
Cul::Hydra::RisearchMembers.get_direct_members_with_datastream_pids(self.pid, 'fulltext').each do |pid|
|
8
|
+
member = ActiveFedora::Base.find(pid)
|
8
9
|
if member.is_a? GenericResource
|
9
10
|
member_doc = member.to_solr
|
10
11
|
unless member_doc["fulltext_tesim"].blank?
|
@@ -12,6 +13,7 @@ class ContentAggregator < GenericAggregator
|
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
16
|
+
|
15
17
|
solr_doc
|
16
18
|
end
|
17
19
|
end
|
@@ -6,7 +6,7 @@ module ClassMethods
|
|
6
6
|
recursive_member_query =
|
7
7
|
'select $child $parent from <#ri>
|
8
8
|
where
|
9
|
-
walk($child <http://purl.oclc.org/NET/CUL/memberOf> <fedora:' + pid + '> and $child <http://purl.oclc.org/NET/CUL/memberOf> $parent)'
|
9
|
+
walk($child <http://purl.oclc.org/NET/CUL/memberOf> <fedora:' + pid + '> and $child <http://purl.oclc.org/NET/CUL/memberOf> $parent)'
|
10
10
|
|
11
11
|
unless cmodel_type == 'all'
|
12
12
|
recursive_member_query += ' and $child <fedora-model:hasModel> $cmodel'
|
@@ -59,6 +59,38 @@ module ClassMethods
|
|
59
59
|
return count.blank? ? 0 : count[0]['count'].to_i
|
60
60
|
end
|
61
61
|
|
62
|
+
def get_direct_members_with_datastream_results(pid, dsid, flush_resource_index_before_query=false, verbose_output=false, format='json')
|
63
|
+
# Note: The query we're using below is a faster version of this query:
|
64
|
+
# "select $pid from <#ri>
|
65
|
+
# where $pid <http://purl.oclc.org/NET/CUL/memberOf> <fedora:#{pid}>
|
66
|
+
# and $pid <fedora-view:disseminates> $ds
|
67
|
+
# and $ds <fedora-view:disseminationType> <info:fedora/*/#{dsid}>"
|
68
|
+
|
69
|
+
direct_members_with_ds_query = "select $pid
|
70
|
+
count( select $ds from <#ri> where $pid <fedora-view:disseminates> $ds and $ds <fedora-view:disseminationType> <info:fedora/*/#{dsid}>)
|
71
|
+
from <#ri>
|
72
|
+
where $pid <http://purl.oclc.org/NET/CUL/memberOf> <info:fedora/#{pid}>
|
73
|
+
having $k0 <http://mulgara.org/mulgara#occursMoreThan> '0.0'^^<http://www.w3.org/2001/XMLSchema#double>;"
|
74
|
+
|
75
|
+
puts 'Performing query:' if verbose_output
|
76
|
+
puts direct_members_with_ds_query if verbose_output
|
77
|
+
|
78
|
+
search_response = JSON.parse(Cul::Hydra::Fedora.repository.find_by_itql(direct_members_with_ds_query, {
|
79
|
+
:type => 'tuples',
|
80
|
+
:format => format,
|
81
|
+
:limit => '',
|
82
|
+
:stream => 'on',
|
83
|
+
:flush => flush_resource_index_before_query.to_s
|
84
|
+
}))
|
85
|
+
|
86
|
+
return search_response['results']
|
87
|
+
end
|
88
|
+
|
89
|
+
def get_direct_members_with_datastream_pids(pid, dsid, flush_resource_index_before_query=false, verbose_output=false)
|
90
|
+
unique_pids = get_direct_members_with_datastream_results(pid, dsid, flush_resource_index_before_query, verbose_output, 'json')
|
91
|
+
unique_pids.map{|result| result['pid'].gsub('info:fedora/', '') }.uniq
|
92
|
+
end
|
93
|
+
|
62
94
|
#Project constituents
|
63
95
|
|
64
96
|
def get_project_constituent_results(pid, verbose_output=false, format='json')
|
@@ -89,9 +121,9 @@ module ClassMethods
|
|
89
121
|
count = get_project_constituent_results(pid,verbose_output,'count/json')
|
90
122
|
return count.blank? ? 0 : count[0]['count'].to_i
|
91
123
|
end
|
92
|
-
|
124
|
+
|
93
125
|
#Publish target members
|
94
|
-
|
126
|
+
|
95
127
|
def get_publish_target_member_results(pid, verbose_output=false, format='json')
|
96
128
|
|
97
129
|
project_constituent_query =
|
@@ -120,13 +152,13 @@ module ClassMethods
|
|
120
152
|
count = get_publish_target_member_results(pid,verbose_output,'count/json')
|
121
153
|
return count.blank? ? 0 : count[0]['count'].to_i
|
122
154
|
end
|
123
|
-
|
155
|
+
|
124
156
|
# Returns the pid of the first object found with the given identifier
|
125
157
|
def get_pid_for_identifier(identifier, flush_resource_index_before_query=false)
|
126
158
|
find_by_identifier_query = "select $pid from <#ri>
|
127
159
|
where $pid <http://purl.org/dc/elements/1.1/identifier> $identifier
|
128
160
|
and $identifier <mulgara:is> '#{identifier}'"
|
129
|
-
|
161
|
+
|
130
162
|
search_response = JSON(Cul::Hydra::Fedora.repository.find_by_itql(find_by_identifier_query, {
|
131
163
|
:type => 'tuples',
|
132
164
|
:format => 'json',
|
@@ -134,39 +166,39 @@ module ClassMethods
|
|
134
166
|
:stream => 'on',
|
135
167
|
:flush => flush_resource_index_before_query.to_s
|
136
168
|
}))
|
137
|
-
|
169
|
+
|
138
170
|
if search_response['results'].present?
|
139
171
|
return search_response['results'].first['pid'].gsub('info:fedora/', '')
|
140
172
|
else
|
141
173
|
return nil
|
142
174
|
end
|
143
175
|
end
|
144
|
-
|
176
|
+
|
145
177
|
# Returns the pids of ALL objects found with the given identifier
|
146
178
|
def get_all_pids_for_identifier(identifier)
|
147
|
-
|
179
|
+
|
148
180
|
find_by_identifier_query = "select $pid from <#ri>
|
149
181
|
where $pid <http://purl.org/dc/elements/1.1/identifier> $identifier
|
150
182
|
and $identifier <mulgara:is> '#{identifier}'"
|
151
|
-
|
183
|
+
|
152
184
|
search_response = JSON(Cul::Hydra::Fedora.repository.find_by_itql(find_by_identifier_query, {
|
153
185
|
:type => 'tuples',
|
154
186
|
:format => 'json',
|
155
187
|
:limit => '',
|
156
188
|
:stream => 'on'
|
157
189
|
}))
|
158
|
-
|
190
|
+
|
159
191
|
pids_to_return = []
|
160
|
-
|
192
|
+
|
161
193
|
if search_response['results'].present?
|
162
194
|
search_response['results'].each do |result|
|
163
195
|
pids_to_return << result['pid'].gsub('info:fedora/', '')
|
164
196
|
end
|
165
197
|
end
|
166
|
-
|
198
|
+
|
167
199
|
return pids_to_return
|
168
200
|
end
|
169
|
-
|
201
|
+
|
170
202
|
end
|
171
203
|
extend ClassMethods
|
172
|
-
end
|
204
|
+
end
|
@@ -64,13 +64,13 @@ module Cul::Hydra::Solrizer
|
|
64
64
|
ModsFieldable.normalize(main_title(p_node), true)
|
65
65
|
end
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
def languages_iso639_2_text
|
69
69
|
mods.xpath("./mods:language/mods:languageTerm[@type='text' and @authority='iso639-2']", MODS_NS).collect do |n|
|
70
70
|
ModsFieldable.normalize(n.text, true)
|
71
71
|
end
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
def languages_iso639_2_code
|
75
75
|
mods.xpath("./mods:language/mods:languageTerm[@type='code' and @authority='iso639-2']", MODS_NS).collect do |n|
|
76
76
|
ModsFieldable.normalize(n.text, true)
|
@@ -210,7 +210,7 @@ module Cul::Hydra::Solrizer
|
|
210
210
|
end
|
211
211
|
values
|
212
212
|
end
|
213
|
-
|
213
|
+
|
214
214
|
def sublocation(node=mods)
|
215
215
|
values = node.xpath("./mods:location/mods:sublocation", MODS_NS).collect do |n|
|
216
216
|
ModsFieldable.normalize(n.text, true)
|
@@ -483,7 +483,7 @@ module Cul::Hydra::Solrizer
|
|
483
483
|
|
484
484
|
# Geo data
|
485
485
|
solr_doc["geo"] = coordinates
|
486
|
-
|
486
|
+
|
487
487
|
## Handle alternate form of language authority for language_language_term_text_ssim
|
488
488
|
## We already capture elements when authority="iso639-2b", but we want to additionally
|
489
489
|
## capture language elements when authority="iso639-2".
|
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.13
|
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:
|
12
|
+
date: 2018-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: blacklight
|
@@ -582,7 +582,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
582
582
|
version: '0'
|
583
583
|
requirements: []
|
584
584
|
rubyforge_project:
|
585
|
-
rubygems_version: 2.6.
|
585
|
+
rubygems_version: 2.6.14
|
586
586
|
signing_key:
|
587
587
|
specification_version: 4
|
588
588
|
summary: ActiveFedora, OM, and Solrizer implementations for CUL repository apps
|