cul_hydra 1.8.0 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|