42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'app/models/concerns/cul/hydra/models/resource.rb', line 42
def add_content_blob(blob, opts)
file_name = opts[:file_name]
mime = opts[:mime_type].nil? ? mime_type(file_name) : opts[:mime_type]
add_file_datastream(blob, :label=>file_name, :mimeType=>mime, :dsid => 'CONTENT')
set_title_and_label( file_name, :only_if_blank=>true )
if IMAGE_MIME_TYPES.include? mime
blob.rewind
image_properties = Cul::Image::Properties.identify(blob)
if image_properties
image_prop_nodes = image_properties.nodeset
relsext = datastreams['RELS-EXT']
image_prop_nodes.each { |node|
if node["resource"]
is_literal = false
object = RDF::URI.new(node["resource"])
else
is_literal = true
object = RDF::Literal(node.text)
end
subject = RDF::URI(internal_uri)
predicate = RDF::URI("#{node.namespace.href}#{node.name}")
query = RDF::Query.new({ :subject => {predicate => :object}})
relationships(predicate).dup.each { |stmt|
relationships.delete(stmt)
}
add_relationship(predicate,object, is_literal)
relationships_are_dirty=true
}
self.datastreams['DC'].update_values({[:format] => mime})
end
end
blob.rewind
end
|