Class: GenericResource
Constant Summary
collapse
- IMAGE_EXT =
{"image/bmp" => 'bmp', "image/gif" => 'gif', "image/jpeg" => 'jpg', "image/png" => 'png', "image/tiff" => 'tif', "image/x-windows-bmp" => 'bmp'}
- WIDTH =
RDF::URI(ActiveFedora::Predicates.find_graph_predicate(:image_width))
- LENGTH =
RDF::URI(ActiveFedora::Predicates.find_graph_predicate(:image_length))
Cul::Scv::Hydra::Models::ImageResource::DJATOKA_BASE_URL, Cul::Scv::Hydra::Models::ImageResource::DJATOKA_THUMBNAIL_PARMS, Cul::Scv::Hydra::Models::ImageResource::EXTENT_PREDICATE, Cul::Scv::Hydra::Models::ImageResource::FORMAT_OF_PREDICATE, Cul::Scv::Hydra::Models::ImageResource::FORMAT_URI, Cul::Scv::Hydra::Models::ImageResource::LENGTH_PREDICATE, Cul::Scv::Hydra::Models::ImageResource::WIDTH_PREDICATE
Instance Method Summary
collapse
#fedora_ds_url, #fedora_method_url, #fedora_object_url, #fedora_risearch_url, #fedora_url, #pid_for_url
#length, #long, #width
#cmodel_pid, #create, #datastreams_in_fedora, #has_desc?, #initialize, #rdf_type, #update_datastream_attributes
Instance Method Details
#assert_content_model ⇒ Object
25
26
27
28
|
# File 'app/models/generic_resource.rb', line 25
def assert_content_model
super
add_relationship(:rdf_type, Cul::Scv::Hydra::ActiveFedora::RESOURCE_TYPE.to_s)
end
|
#index_type_label ⇒ Object
34
35
36
|
# File 'app/models/generic_resource.rb', line 34
def index_type_label
"FILE RESOURCE"
end
|
#linkable_resources ⇒ Object
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# File 'app/models/generic_resource.rb', line 86
def linkable_resources
results = []
if (rels = rels_int.instance_variable_get :@solr_hash)
rels.each do |dsuri, props|
if dsuri =~ /\/content$/ or not props[FORMAT_OF_PREDICATE].blank?
dsid = dsuri.split('/')[-1]
res = datastream_as_resource(dsid, props)
results << res
end
end
else
content_uri = RDF::URI("info:fedora/#{self.pid}/content")
dsuris = [content_uri]
results = []
datastreams.each do |k, v|
rels = rels_int.relationships(v, :format_of, content_uri)
dsuris << rels[0].subject unless rels.blank?
end
dsuris.each do |dsuri|
dsid = dsuri.to_s.split('/')[-1]
width_rel = rels_int.relationships(dsuri, :exif_image_width)[0]
length_rel = rels_int.relationships(dsuri, :exif_image_length)[0]
extent_rel = rels_int.relationships(dsuri, :extent)[0]
props = {EXTENT_PREDICATE => [], WIDTH_PREDICATE => [], LENGTH_PREDICATE => []}
props[EXTENT_PREDICATE] << extent_rel.object.to_s unless extent_rel.blank?
props[WIDTH_PREDICATE] << width_rel.object.to_s unless width_rel.blank?
props[LENGTH_PREDICATE] << length_rel.object.to_s unless length_rel.blank?
results << datastream_as_resource(dsid, props)
end
end
results
end
|
#route_as ⇒ Object
30
31
32
|
# File 'app/models/generic_resource.rb', line 30
def route_as
self.zooming? ? "zoomingimage" : "resource"
end
|
#thumbnail_info ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'app/models/generic_resource.rb', line 46
def thumbnail_info
thumb = relsint.relationships(datastreams['content'],:foaf_thumb).first
if thumb
t_dsid = thumb.object.to_s.split('/')[-1]
return {:url=>"#{ActiveFedora.fedora_config[:url]}/objects/#{pid}/datastreams/#{t_dsid}/content",:mime=>datastreams[t_dsid].mimeType}
else
return {:url=>image_url("cul_scv_hydra/crystal/file.png"),:mime=>'image/png'}
end
end
|
#to_solr(solr_doc = Hash.new, opts = {}) ⇒ Object
38
39
40
41
42
43
44
|
# File 'app/models/generic_resource.rb', line 38
def to_solr(solr_doc = Hash.new, opts={})
super
unless solr_doc["extent_ssi"] || self.datastreams["content"].nil?
solr_doc["extent_ssi"] = [self.datastreams["content"].size]
end
solr_doc
end
|
#zooming? ⇒ Boolean
123
124
125
|
# File 'app/models/generic_resource.rb', line 123
def zooming?
!rels_int.relationships(datastreams['content'], :foaf_zooming).first.blank?
end
|