cul_hydra 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/concerns/cul/hydra/models/common.rb +55 -0
- data/lib/cul_hydra/version.rb +1 -1
- data/lib/cul_hydra/version.rb~ +1 -1
- data/lib/tasks/cul_hydra_dev.rake +2 -2
- 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: efa13a7d8ec21a34f211463fb1026c640a2ca3bf
|
4
|
+
data.tar.gz: f3c5bff14e40684c60accd573b8c7bf0fb525cf0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f44c97c75dce30861be5287f19da6c22d532e9c27f1fd8094a646218ece5f197cb751610ec7d1dfad6dba5257822a8bc288c4f573fc2bdbee95a73c5141f20c
|
7
|
+
data.tar.gz: 893c65d7a0f3ba682104882582f85593028cbe92c8ca1c2e81e5e3088b16c440b271212bf094c0e41a79c06a669df19ff71187dea018bf207c3273822d4800d6
|
@@ -135,9 +135,64 @@ module Cul::Hydra::Models::Common
|
|
135
135
|
end
|
136
136
|
}
|
137
137
|
solr_doc[:structured_bsi] = 'false' unless solr_doc.has_key? :structured_bsi
|
138
|
+
|
139
|
+
representative_child = get_representative_generic_resource
|
140
|
+
solr_doc['representative_generic_resource_pid_ssi'] = representative_child.pid unless representative_child.nil?
|
138
141
|
|
139
142
|
solr_doc
|
140
143
|
end
|
144
|
+
|
145
|
+
def get_representative_generic_resource
|
146
|
+
|
147
|
+
return self if self.is_a?(GenericResource)
|
148
|
+
return nil unless self.is_a?(Cul::Hydra::Models::Aggregator) # Only Aggregators have struct metadata
|
149
|
+
|
150
|
+
# If we're here, then the object was not a Generic resource.
|
151
|
+
# Try to get child info from a structMat datastream, and fall back to
|
152
|
+
# the first :cul_member_of child if a structMap isn't present
|
153
|
+
|
154
|
+
# Check for the presence of a structMap and get first GenericResource in that structMap
|
155
|
+
if self.has_struct_metadata?
|
156
|
+
struct = Cul::Hydra::Datastreams::StructMetadata.from_xml(self.datastreams['structMetadata'].content)
|
157
|
+
ng_div = struct.first_ordered_content_div #Nokogiri node response
|
158
|
+
found_struct_div = (! ng_div.nil?)
|
159
|
+
else
|
160
|
+
found_struct_div = false
|
161
|
+
end
|
162
|
+
|
163
|
+
if found_struct_div
|
164
|
+
content_ids = ng_div.attr('CONTENTIDS').split(' ') # Get all space-delimited content ids
|
165
|
+
child_obj = nil
|
166
|
+
content_ids.each do |content_id|
|
167
|
+
child_obj ||= GenericAggregator.search_repo.find_by(identifier: content_id) # We don't know what type of aggregator we'll be getting back, but all we need is the pid
|
168
|
+
end
|
169
|
+
# If we didn't find the child object through an identifier search, we might be working with a PID instead.
|
170
|
+
# Do a pid-based search
|
171
|
+
if child_obj.nil?
|
172
|
+
content_ids.each do |content_id|
|
173
|
+
child_obj ||= ActiveFedora::Base.exists?(content_id) ? ActiveFedora::Base.find(content_id) : nil
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
if child_obj
|
178
|
+
# Recursion! Woo!
|
179
|
+
return child_obj.get_representative_generic_resource
|
180
|
+
else
|
181
|
+
#Rails.logger.error "No object for dc:identifier in #{content_ids.inspect}"
|
182
|
+
return nil
|
183
|
+
end
|
184
|
+
else
|
185
|
+
# If there isn't a structMap, just get the first child
|
186
|
+
member_pids = Cul::Hydra::RisearchMembers.get_direct_member_pids(self.pid)
|
187
|
+
if member_pids.first
|
188
|
+
child_obj = ActiveFedora::Base.find(member_pids.first)
|
189
|
+
return child_obj.get_representative_generic_resource
|
190
|
+
else
|
191
|
+
#Rails.logger.error "No child objects or resources for #{self.pid}"
|
192
|
+
return nil
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
141
196
|
|
142
197
|
def update_datastream_attributes(params={}, opts={})
|
143
198
|
logger.debug "Common.update_datastream_attributes"
|
data/lib/cul_hydra/version.rb
CHANGED
data/lib/cul_hydra/version.rb~
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
APP_ROOT = File.expand_path("#{File.dirname(__FILE__)}/../../") unless defined?(APP_ROOT)
|
2
2
|
|
3
3
|
require 'jettywrapper'
|
4
|
-
JETTY_ZIP_BASENAME = '7
|
5
|
-
Jettywrapper.url = "https://github.com/
|
4
|
+
JETTY_ZIP_BASENAME = 'fedora-3.7-with-risearch'
|
5
|
+
Jettywrapper.url = "https://github.com/cul/hydra-jetty/archive/#{JETTY_ZIP_BASENAME}.zip"
|
6
6
|
|
7
7
|
namespace :cul_hydra do
|
8
8
|
|
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.0.
|
4
|
+
version: 1.0.3
|
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: 2015-05-
|
12
|
+
date: 2015-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: blacklight
|