cul_hydra 1.8.0 → 1.9.0
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 +4 -4
- data/app/controllers/concerns/cul/hydra/application_id_behavior.rb +5 -6
- data/app/models/administrative_set.rb +0 -1
- data/app/models/concept.rb +0 -1
- data/app/models/concerns/cul/hydra/models.rb +1 -0
- data/app/models/concerns/cul/hydra/models/common.rb +8 -9
- data/app/models/concerns/cul/hydra/models/rels_int.rb +18 -0
- data/app/models/concerns/ore/proxy.rb +2 -3
- data/app/models/cul/hydra/datastreams/rels_int.rb +179 -0
- data/app/models/dc_document.rb +0 -1
- data/app/models/generic_aggregator.rb +0 -1
- data/app/models/generic_object.rb +0 -1
- data/app/models/generic_resource.rb +1 -3
- data/fixtures/spec/CUL_RELS_INT/rels_int_blank.xml +2 -0
- data/fixtures/spec/CUL_RELS_INT/rels_int_profile.xml +19 -0
- data/fixtures/spec/CUL_RELS_INT/rels_int_test.xml +12 -0
- data/fixtures/spec/FOXML/resource-thumb.xml +2 -1
- data/lib/cul_hydra.rb +1 -4
- data/lib/cul_hydra/rels_int.rb +9 -0
- data/lib/cul_hydra/rels_int/rdf_xml_writer.rb +33 -0
- data/lib/cul_hydra/version.rb +1 -1
- data/lib/tasks/cul_hydra_dev.rake +0 -28
- metadata +32 -58
- data/app/models/jp2_image_aggregator.rb +0 -34
- data/app/models/mets_structured_aggregator.rb +0 -18
- data/app/models/resource.rb +0 -78
- data/app/models/resource_aggregator.rb +0 -22
- data/app/models/static_audio_aggregator.rb +0 -12
- data/app/models/static_image_aggregator.rb +0 -32
- data/lib/cul_hydra/controllers.rb +0 -14
- data/lib/cul_hydra/controllers/aggregates.rb +0 -93
- data/lib/cul_hydra/controllers/aggregator_controller_helper.rb +0 -27
- data/lib/cul_hydra/controllers/catalog.rb +0 -12
- data/lib/cul_hydra/controllers/collections.rb +0 -81
- data/lib/cul_hydra/controllers/content_aggregators.rb +0 -81
- data/lib/cul_hydra/controllers/datastreams.rb +0 -145
- data/lib/cul_hydra/controllers/helpers.rb +0 -10
- data/lib/cul_hydra/controllers/helpers/active_fedora_helper_behavior.rb +0 -9
- data/lib/cul_hydra/controllers/helpers/application_helper_behavior.rb +0 -16
- data/lib/cul_hydra/controllers/helpers/dc_metadata_helper_behavior.rb +0 -9
- data/lib/cul_hydra/controllers/helpers/hydra_assets_helper_behavior.rb +0 -46
- data/lib/cul_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb +0 -35
- data/lib/cul_hydra/controllers/helpers/hydra_uploader_helper_behavior.rb +0 -34
- data/lib/cul_hydra/controllers/helpers/resources_helper_behavior.rb +0 -159
- data/lib/cul_hydra/controllers/resources.rb +0 -161
- data/lib/cul_hydra/controllers/static_image_aggregators.rb +0 -105
- data/lib/cul_hydra/controllers/suggestions.rb +0 -126
- data/lib/cul_hydra/controllers/terms.rb +0 -205
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 508c0e32e914c363417b52a01d19ee0612b4dafebeccf8034d257b48aa9bc202
|
4
|
+
data.tar.gz: 8e3f07a2e0a5bb2e2ff926fb9cf51060e69c2a301a746709cb07195f4d0e01e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43002c0a624e05152e017b2cffecac2f95533075648e18de883b8fdec64bd652a77887a8386df0e242a5d7c74f7a851632010ad4b73adf6c500ce64b1ce7a5e9
|
7
|
+
data.tar.gz: e090e289157046e51ba2e129776d760043d0c4770e0ea82a8d66999a5a01ddf007da1afb501533293a5e28b34c737d6957fdbd0b7d3ff5c9b441b276e47fbacf
|
@@ -1,11 +1,8 @@
|
|
1
1
|
module Cul::Hydra::ApplicationIdBehavior
|
2
2
|
extend ActiveSupport::Concern
|
3
|
-
included do
|
4
|
-
include Blacklight::SolrHelper
|
5
|
-
end
|
6
3
|
|
7
4
|
def find_for_params(path,solr_params)
|
8
|
-
res =
|
5
|
+
res = blacklight_config.repository.send_and_receive(path, {key=>solr_params.to_hash, method:blacklight_config.http_method})
|
9
6
|
Blacklight::SolrResponse.new(res, solr_params, solr_document_model: blacklight_config.solr_document_model)
|
10
7
|
end
|
11
8
|
|
@@ -19,7 +16,8 @@ module Cul::Hydra::ApplicationIdBehavior
|
|
19
16
|
p[:fq] = "identifier_ssim:#{(id)}"
|
20
17
|
p[:fl] ||= '*'
|
21
18
|
#p[:qt] ||= blacklight_config.document_solr_request_handler
|
22
|
-
|
19
|
+
repository = blacklight_config.repository_class.new(blacklight_config)
|
20
|
+
solr_response = repository.search(p)
|
23
21
|
raise Blacklight::Exceptions::InvalidSolrID.new(id) if solr_response.docs.empty?
|
24
22
|
document = SolrDocument.new(solr_response.docs.first, solr_response)
|
25
23
|
@response, @document = [solr_response, document]
|
@@ -35,7 +33,8 @@ module Cul::Hydra::ApplicationIdBehavior
|
|
35
33
|
p[:fq] = "dc_identifier_ssim:#{(id)}"
|
36
34
|
p[:fl] ||= '*'
|
37
35
|
#p[:qt] ||= blacklight_config.document_solr_request_handler
|
38
|
-
|
36
|
+
repository = blacklight_config.repository_class.new(blacklight_config)
|
37
|
+
solr_response = repository.search(p)
|
39
38
|
raise Blacklight::Exceptions::InvalidSolrID.new(id) if solr_response.docs.empty?
|
40
39
|
document = SolrDocument.new(solr_response.docs.first, solr_response)
|
41
40
|
@response, @document = [solr_response, document]
|
@@ -3,7 +3,6 @@ require "active_fedora_finders"
|
|
3
3
|
class AdministrativeSet < ::ActiveFedora::Base
|
4
4
|
include ::ActiveFedora::FinderMethods::RepositoryMethods
|
5
5
|
include ::ActiveFedora::DatastreamCollections
|
6
|
-
include Hydra::ModelMethods
|
7
6
|
include Cul::Hydra::Models::Common
|
8
7
|
include Pcdm::Models
|
9
8
|
|
data/app/models/concept.rb
CHANGED
@@ -3,7 +3,6 @@ require "active_fedora_finders"
|
|
3
3
|
class Concept < GenericAggregator
|
4
4
|
include ::ActiveFedora::FinderMethods::RepositoryMethods
|
5
5
|
include ::ActiveFedora::DatastreamCollections
|
6
|
-
include ::Hydra::ModelMethods
|
7
6
|
include Cul::Hydra::Models::Common
|
8
7
|
include Cul::Hydra::Models::Aggregator
|
9
8
|
|
@@ -18,6 +18,7 @@ module Hydra
|
|
18
18
|
autoload :Common, 'cul/hydra/models/common'
|
19
19
|
autoload :ImageResource, 'cul/hydra/models/image_resource'
|
20
20
|
autoload :LinkableResources, 'cul/hydra/models/linkable_resources'
|
21
|
+
autoload :RelsInt, 'cul/hydra/models/rels_int'
|
21
22
|
autoload :Resource, 'cul/hydra/models/resource'
|
22
23
|
end
|
23
24
|
end
|
@@ -8,7 +8,6 @@ module Cul::Hydra::Models::Common
|
|
8
8
|
define_model_callbacks :create
|
9
9
|
has_metadata :name => "DC", :type=>Cul::Hydra::Datastreams::DCMetadata, :versionable => true
|
10
10
|
has_metadata :name => "descMetadata", :type=>Cul::Hydra::Datastreams::ModsDocument, :versionable => true
|
11
|
-
has_metadata :name => "rightsMetadata", :type=>::Hydra::Datastream::RightsMetadata, :versionable => true
|
12
11
|
has_many :publishers, :property => :publisher, :class_name=>'ActiveFedora::Base'
|
13
12
|
after_create :rdf_types!
|
14
13
|
end
|
@@ -247,7 +246,7 @@ module Cul::Hydra::Models::Common
|
|
247
246
|
else
|
248
247
|
# If there isn't a structMap, just get the first child
|
249
248
|
member_pids = Cul::Hydra::RisearchMembers.get_direct_member_pids(self.pid, true)
|
250
|
-
logger.warn "Warning: #{self.pid} is a member of itself!" if member_pids.include?(self.pid)
|
249
|
+
Rails.logger.warn "Warning: #{self.pid} is a member of itself!" if member_pids.include?(self.pid)
|
251
250
|
if member_pids.first
|
252
251
|
child_obj = ActiveFedora::Base.find(member_pids.first)
|
253
252
|
return child_obj.get_representative_generic_resource
|
@@ -257,12 +256,12 @@ module Cul::Hydra::Models::Common
|
|
257
256
|
end
|
258
257
|
end
|
259
258
|
rescue ActiveFedora::ObjectNotFoundError
|
260
|
-
logger.warn "#{get_singular_rel(:schema_image)} not found in repository for #{self.pid}"
|
259
|
+
Rails.logger.warn "#{get_singular_rel(:schema_image)} not found in repository for #{self.pid}"
|
261
260
|
return nil
|
262
261
|
end
|
263
262
|
|
264
263
|
def update_datastream_attributes(params={}, opts={})
|
265
|
-
logger.debug "Common.update_datastream_attributes"
|
264
|
+
Rails.logger.debug "Common.update_datastream_attributes"
|
266
265
|
result = params.dup
|
267
266
|
params.each_pair do |dsid, ds_params|
|
268
267
|
if datastreams.include?(dsid)
|
@@ -272,12 +271,12 @@ module Cul::Hydra::Models::Common
|
|
272
271
|
changed ||= value_changed?(datastreams[dsid],pointer,values)
|
273
272
|
}
|
274
273
|
if changed
|
275
|
-
logger.debug "Common.update_datastream_attributes calling update_indexed_attributes"
|
274
|
+
Rails.logger.debug "Common.update_datastream_attributes calling update_indexed_attributes"
|
276
275
|
result[dsid] = datastreams[dsid].update_indexed_attributes(ds_params)
|
277
276
|
else
|
278
277
|
result[dsid] = no_update(ds_params)
|
279
278
|
end
|
280
|
-
logger.debug "change detected? #{changed} digital_object? #{datastreams[dsid].changed?}"
|
279
|
+
Rails.logger.debug "change detected? #{changed} digital_object? #{datastreams[dsid].changed?}"
|
281
280
|
else
|
282
281
|
result.delete(dsid)
|
283
282
|
end
|
@@ -308,7 +307,7 @@ module Cul::Hydra::Models::Common
|
|
308
307
|
else
|
309
308
|
values = {"0"=>values}
|
310
309
|
end
|
311
|
-
logger.debug "submitted values for #{pointer.inspect} : #{values.inspect}"
|
310
|
+
Rails.logger.debug "submitted values for #{pointer.inspect} : #{values.inspect}"
|
312
311
|
return true if values["-1"]
|
313
312
|
changed = false
|
314
313
|
old_values = ds.get_values(pointer)
|
@@ -316,10 +315,10 @@ module Cul::Hydra::Models::Common
|
|
316
315
|
old_values.each_index {|ix| indexed_values[ix.to_s] = old_values[ix] }
|
317
316
|
indexed_values.each {|k,v|
|
318
317
|
new_val = values.delete(k)
|
319
|
-
logger.debug "old: #{v} new: #{new_val} changed? #{!(v.eql? new_val)}"
|
318
|
+
Rails.logger.debug "old: #{v} new: #{new_val} changed? #{!(v.eql? new_val)}"
|
320
319
|
changed ||= !(v.eql? new_val)
|
321
320
|
}
|
322
|
-
logger.debug "remaining values! #{values.inspect}" if values.length > 0
|
321
|
+
Rails.logger.debug "remaining values! #{values.inspect}" if values.length > 0
|
323
322
|
changed || (values.length > 0)
|
324
323
|
end
|
325
324
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'active_support'
|
3
|
+
module Cul::Hydra::Models
|
4
|
+
module RelsInt
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
included do
|
7
|
+
self.has_metadata :name=>"RELS-INT", :type=>Cul::Hydra::Datastreams::RelsInt
|
8
|
+
end
|
9
|
+
|
10
|
+
def rels_int
|
11
|
+
if !datastreams.has_key?("RELS-INT")
|
12
|
+
ds = Cul::Hydra::Datastreams::RelsInt.new(@inner_object, "RELS-INT")
|
13
|
+
add_datastream(ds)
|
14
|
+
end
|
15
|
+
return datastreams["RELS-INT"]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -5,7 +5,7 @@ module ORE
|
|
5
5
|
class Proxy < ActiveTriples::Resource
|
6
6
|
include Digest
|
7
7
|
include Solrizer::Common
|
8
|
-
include ActiveFedora::
|
8
|
+
include ActiveFedora::RDF::Indexing
|
9
9
|
|
10
10
|
module Id
|
11
11
|
class Descriptor < Solrizer::Descriptor
|
@@ -22,7 +22,7 @@ class Proxy < ActiveTriples::Resource
|
|
22
22
|
def self.type
|
23
23
|
RDF::ORE.Proxy
|
24
24
|
end
|
25
|
-
property :
|
25
|
+
property :id_node, predicate: RDF.nodeID, multivalue: false do |ix|
|
26
26
|
ix.as Id::Descriptor.new
|
27
27
|
end
|
28
28
|
property :isAggregatedBy, predicate: RDF::ORE.isAggregatedBy, multivalue: false do |ix|
|
@@ -119,6 +119,5 @@ class Proxy < ActiveTriples::Resource
|
|
119
119
|
config
|
120
120
|
end
|
121
121
|
end
|
122
|
-
|
123
122
|
end
|
124
123
|
end
|
@@ -0,0 +1,179 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'active-fedora'
|
3
|
+
require 'rdf/rdfxml'
|
4
|
+
module Cul
|
5
|
+
module Hydra
|
6
|
+
module Datastreams
|
7
|
+
class RelsInt < ActiveFedora::Datastream
|
8
|
+
XSD_INT_BITLENGTH = 31
|
9
|
+
class_attribute :profile_solr_name
|
10
|
+
attr_accessor :relationships_loaded
|
11
|
+
|
12
|
+
self.profile_solr_name = ActiveFedora::SolrService.solr_name("rels_int_profile", :stored_searchable)
|
13
|
+
|
14
|
+
def serialize!
|
15
|
+
self.content = to_rels_int() if changed_attributes.include? 'relationships'
|
16
|
+
clear_attribute_changes 'relationships'
|
17
|
+
end
|
18
|
+
|
19
|
+
def relationships_will_change!
|
20
|
+
changed_attributes['relationships'] = nil
|
21
|
+
end
|
22
|
+
|
23
|
+
def content
|
24
|
+
if self.new? and @content.nil?
|
25
|
+
content= RelsInt.xml_template
|
26
|
+
else
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def content= new_content
|
32
|
+
super
|
33
|
+
relationships_loaded=false
|
34
|
+
load_relationships
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_resource(object, literal=false)
|
38
|
+
if object.is_a? ActiveFedora::Datastream
|
39
|
+
::RDF::URI.new("info:fedora/#{object.pid}/#{object.dsid}")
|
40
|
+
elsif object.respond_to? :internal_uri
|
41
|
+
::RDF::URI.new(object.internal_uri)
|
42
|
+
elsif object.is_a? ::RDF::Resource
|
43
|
+
object
|
44
|
+
elsif literal
|
45
|
+
result = ::RDF::Literal.new(object)
|
46
|
+
case # invalid datatypes for FCRepo 3
|
47
|
+
when result.datatype.eql?(::RDF::XSD.integer)
|
48
|
+
result.datatype = (signed_bit_length(result.object) > XSD_INT_BITLENGTH ? ::RDF::XSD.long : ::RDF::XSD.int)
|
49
|
+
when result.datatype.eql?(::RDF::XSD.decimal)
|
50
|
+
result.datatype = ::RDF::XSD.double
|
51
|
+
when result.datatype.eql?(::RDF::XSD.boolean)
|
52
|
+
result.datatype = nil
|
53
|
+
when result.datatype.eql?(::RDF::XSD.date)
|
54
|
+
result = ::RDF::Literal.new(object.to_datetime)
|
55
|
+
when result.datatype.eql?(::RDF::XSD.time)
|
56
|
+
result = ::RDF::Literal.new(object.to_datetime)
|
57
|
+
end
|
58
|
+
result
|
59
|
+
else
|
60
|
+
::RDF::URI.new(object.to_s)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def to_predicate(arg)
|
65
|
+
return :p if arg.nil?
|
66
|
+
if arg.is_a? Symbol
|
67
|
+
arg = ActiveFedora::Predicates.find_graph_predicate(arg)
|
68
|
+
elsif arg.is_a? ::RDF::Resource
|
69
|
+
arg
|
70
|
+
else
|
71
|
+
::RDF::URI.new(arg.to_s)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def build_statement(datastream, predicate, object, literal=false)
|
76
|
+
subject = to_resource(datastream)
|
77
|
+
predicate = to_predicate(predicate)
|
78
|
+
object = to_resource(object,literal)
|
79
|
+
::RDF::Statement.new(subject,predicate,object)
|
80
|
+
end
|
81
|
+
|
82
|
+
def add_relationship(datastream, predicate, target, literal=false)
|
83
|
+
stmt = build_statement(datastream, predicate, target, literal)
|
84
|
+
graph.insert(stmt) unless graph.has_statement? stmt
|
85
|
+
relationships_will_change!
|
86
|
+
end
|
87
|
+
|
88
|
+
def remove_relationship(datastream, predicate, target, literal=false)
|
89
|
+
stmt = build_statement(datastream, predicate, target, literal)
|
90
|
+
graph.delete(stmt)
|
91
|
+
relationships_will_change!
|
92
|
+
end
|
93
|
+
|
94
|
+
def clear_relationship(datastream, predicate)
|
95
|
+
graph.delete [to_resource(datastream), to_predicate(predicate), nil]
|
96
|
+
relationships_will_change!
|
97
|
+
end
|
98
|
+
|
99
|
+
def relationships(*args)
|
100
|
+
q_args = args.empty? ? [:s, :p, :o] : [to_resource(args.first), to_predicate(args[1]), (args[2] || :o)]
|
101
|
+
query = ::RDF::Query.new do |query|
|
102
|
+
query << q_args
|
103
|
+
end
|
104
|
+
query.execute(graph).map(&:to_hash).map do |hash|
|
105
|
+
stmt = q_args.map {|k| hash[k] || k}
|
106
|
+
::RDF::Statement.new(*stmt)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def load_relationships
|
111
|
+
# load from content
|
112
|
+
g = ::RDF::Graph.new
|
113
|
+
::RDF::RDFXML::Reader.new(content).each do |stmt|
|
114
|
+
g << stmt
|
115
|
+
end
|
116
|
+
self.relationships_loaded = true
|
117
|
+
clear_attribute_changes 'relationships'
|
118
|
+
@graph = g
|
119
|
+
end
|
120
|
+
|
121
|
+
def graph
|
122
|
+
@graph ||= load_relationships
|
123
|
+
end
|
124
|
+
|
125
|
+
def to_rels_int
|
126
|
+
xml = Cul::Hydra::RelsInt::RDFXMLWriter.buffer(:max_depth=>1) do |writer|
|
127
|
+
graph.each_statement do |statement|
|
128
|
+
writer << statement
|
129
|
+
end
|
130
|
+
end
|
131
|
+
xml
|
132
|
+
end
|
133
|
+
|
134
|
+
def self.xml_template
|
135
|
+
"<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"></rdf:RDF>"
|
136
|
+
end
|
137
|
+
|
138
|
+
def to_solr(solr_doc=Hash.new)
|
139
|
+
result = super(solr_doc)
|
140
|
+
result = solrize_relationships(result)
|
141
|
+
result
|
142
|
+
end
|
143
|
+
|
144
|
+
def from_solr(solr_doc)
|
145
|
+
predicate_symbol = self.profile_solr_name
|
146
|
+
value = (solr_doc[predicate_symbol].nil? ? solr_doc[predicate_symbol.to_s]: solr_doc[predicate_symbol])
|
147
|
+
@solr_hash = value.blank? ? nil : JSON.parse(value[0])
|
148
|
+
end
|
149
|
+
|
150
|
+
def solrize_relationships(solr_doc=Hash.new)
|
151
|
+
rel_hash = {} # the rels_int_profile is a hash of hashes in json
|
152
|
+
graph.each_statement do |statement|
|
153
|
+
predicate = ActiveFedora::Predicates.short_predicate(statement.predicate)
|
154
|
+
literal = statement.object.kind_of?(::RDF::Literal)
|
155
|
+
val = literal ? statement.object.value : statement.object.to_str
|
156
|
+
rel_hash[statement.subject] ||= {}
|
157
|
+
rel_hash[statement.subject][predicate] ||= []
|
158
|
+
rel_hash[statement.subject][predicate] << val
|
159
|
+
end
|
160
|
+
solr_doc[self.class.profile_solr_name] = rel_hash.to_json unless rel_hash.blank?
|
161
|
+
solr_doc
|
162
|
+
end
|
163
|
+
class UriObject
|
164
|
+
def initialize(resource)
|
165
|
+
@resource = resource
|
166
|
+
end
|
167
|
+
end
|
168
|
+
private
|
169
|
+
def signed_bit_length(num)
|
170
|
+
if num.respond_to? :bit_length
|
171
|
+
num.bit_length
|
172
|
+
else # in MRI 1.9.x, we need to implement the two complement bitlength
|
173
|
+
Math.log2(num < 0 ? num.abs : num+1).ceil
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
data/app/models/dc_document.rb
CHANGED
@@ -4,7 +4,6 @@ class DcDocument < ActiveFedora::Base
|
|
4
4
|
include ::ActiveFedora::Associations
|
5
5
|
include ::ActiveFedora::FinderMethods::RepositoryMethods
|
6
6
|
include ::ActiveFedora::DatastreamCollections
|
7
|
-
include Hydra::ModelMethods
|
8
7
|
include Cul::Hydra::Models::Common
|
9
8
|
#alias :file_objects :resources
|
10
9
|
|
@@ -3,7 +3,6 @@ require "active_fedora_finders"
|
|
3
3
|
class GenericAggregator < ::ActiveFedora::Base
|
4
4
|
include ::ActiveFedora::FinderMethods::RepositoryMethods
|
5
5
|
include ::ActiveFedora::DatastreamCollections
|
6
|
-
include Hydra::ModelMethods
|
7
6
|
include Cul::Hydra::Models::Common
|
8
7
|
include Cul::Hydra::Models::Aggregator
|
9
8
|
|
@@ -4,7 +4,6 @@ class GenericObject < ::ActiveFedora::Base
|
|
4
4
|
extend ActiveModel::Callbacks
|
5
5
|
include ::ActiveFedora::FinderMethods::RepositoryMethods
|
6
6
|
include ::ActiveFedora::DatastreamCollections
|
7
|
-
include ::Hydra::ModelMethods
|
8
7
|
include Cul::Hydra::Models::Common
|
9
8
|
include Cul::Hydra::Models::Aggregator
|
10
9
|
|
@@ -8,11 +8,10 @@ class GenericResource < ::ActiveFedora::Base
|
|
8
8
|
extend ActiveModel::Callbacks
|
9
9
|
include ::ActiveFedora::FinderMethods::RepositoryMethods
|
10
10
|
include ::ActiveFedora::DatastreamCollections
|
11
|
-
include ::Hydra::ModelMethods
|
12
11
|
include Cul::Hydra::Models::Common
|
13
12
|
include Cul::Hydra::Models::ImageResource
|
13
|
+
include Cul::Hydra::Models::RelsInt
|
14
14
|
include Cul::Hydra::Fedora::UrlHelperBehavior
|
15
|
-
include ::ActiveFedora::RelsInt
|
16
15
|
|
17
16
|
has_and_belongs_to_many :containers, :property=>:cul_member_of, :class_name=>'ActiveFedora::Base'
|
18
17
|
|
@@ -22,7 +21,6 @@ class GenericResource < ::ActiveFedora::Base
|
|
22
21
|
|
23
22
|
has_datastream :name => "content", :type=>::ActiveFedora::Datastream, :versionable => true
|
24
23
|
has_metadata :name => "accessControlMetadata", :type=>Cul::Hydra::Datastreams::AccessControlMetadata, :versionable => false
|
25
|
-
has_metadata :name=>"RELS-INT", :type=>ActiveFedora::RelsInt::Datastream
|
26
24
|
|
27
25
|
rdf_types(RDF::CUL.Resource)
|
28
26
|
rdf_types(RDF::PCDM.Object)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<datastreamProfile xmlns="http://www.fedora.info/definitions/1/0/management/"
|
2
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
3
|
+
xsi:schemaLocation="http://www.fedora.info/definitions/1/0/management/ http://www.fedora.info/definitions/1/0/datastreamProfile.xsd"
|
4
|
+
pid="test:relsint" dsID="RELS-INT">
|
5
|
+
<dsLabel>Mock Profile Response</dsLabel>
|
6
|
+
<dsVersionID>RELS-INT.0</dsVersionID>
|
7
|
+
<dsCreateDate>2012-07-23T21:56:16.636Z</dsCreateDate>
|
8
|
+
<dsState>A</dsState>
|
9
|
+
<dsMIME>application/rdf+xml</dsMIME>
|
10
|
+
<dsFormatURI />
|
11
|
+
<dsControlGroup>X</dsControlGroup>
|
12
|
+
<dsSize>802</dsSize>
|
13
|
+
<dsVersionable>true</dsVersionable>
|
14
|
+
<dsInfoType/>
|
15
|
+
<dsLocation>mocked+object</dsLocation>
|
16
|
+
<dsLocationType/>
|
17
|
+
<dsChecksumType>DISABLED</dsChecksumType>
|
18
|
+
<dsChecksum>none</dsChecksum>
|
19
|
+
</datastreamProfile>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
2
|
+
<rdf:Description rdf:about="info:fedora/test:relsint/DC">
|
3
|
+
<isMetadataFor rdf:resource="info:fedora/test:relsint/RELS-INT" xmlns="info:fedora/fedora-system:def/relations-external#"/>
|
4
|
+
<isMetadataFor rdf:resource="info:fedora/test:relsint/RELS-EXT" xmlns="info:fedora/fedora-system:def/relations-external#"/>
|
5
|
+
</rdf:Description>
|
6
|
+
<rdf:Description rdf:about="info:fedora/test:relsint/RELS-EXT">
|
7
|
+
<asserts xmlns="http://projecthydra.org/ns/relations#">FOO</asserts>
|
8
|
+
</rdf:Description>
|
9
|
+
<rdf:Description rdf:about="info:fedora/test:relsint/RELS-INT">
|
10
|
+
<asserts xmlns="http://projecthydra.org/ns/relations#">BAR</asserts>
|
11
|
+
</rdf:Description>
|
12
|
+
</rdf:RDF>
|