Module: Dor::Publishable
- Extended by:
- ActiveSupport::Concern, Deprecation
- Defined in:
- lib/dor/models/concerns/publishable.rb
Instance Method Summary collapse
-
#encoded_thumb ⇒ String
Return a URI encoded version of the thumb image for use by indexers (leaving the extension of the filename).
-
#public_relationships ⇒ Nokogiri::XML
strips away the relationships that should not be shown in public desc metadata.
-
#public_xml ⇒ xml
Generate the public .xml for a PURL page.
-
#publish_metadata ⇒ Object
Copies this object’s public_xml to the Purl document cache if it is world discoverable otherwise, it prunes the object’s metadata from the document cache.
-
#publish_metadata_remotely ⇒ Object
Call dor services app to have it publish the metadata.
-
#thumb ⇒ String
Compute the thumbnail for this object following the rules at consul.stanford.edu/display/chimera/The+Rules+of+Thumb Used by PublicXmlService.
-
#thumb_url ⇒ String
Return a full qualified thumbnail image URL if the thumb is computable.
Instance Method Details
#encoded_thumb ⇒ String
Return a URI encoded version of the thumb image for use by indexers (leaving the extension of the filename)
22 23 24 25 26 27 28 29 |
# File 'lib/dor/models/concerns/publishable.rb', line 22 def encoded_thumb thumb_image = thumb # store the result locally, so we don't have to compute each time we use it below return unless thumb_image thumb_druid = thumb_image.split('/').first # the druid (before the first slash) thumb_filename = thumb_image.split(/#{pid_regex}[\/]/).last # everything after the druid "#{thumb_druid}%2F#{ERB::Util.url_encode(thumb_filename)}" end |
#public_relationships ⇒ Nokogiri::XML
strips away the relationships that should not be shown in public desc metadata
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/dor/models/concerns/publishable.rb', line 44 def public_relationships include_elements = ['fedora:isMemberOf', 'fedora:isMemberOfCollection', 'fedora:isConstituentOf'] rels_doc = Nokogiri::XML(datastreams['RELS-EXT'].content) rels_doc.xpath('/rdf:RDF/rdf:Description/*', 'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#').each do |rel| unless include_elements.include?([rel.namespace.prefix, rel.name].join(':')) rel.next_sibling.remove if rel.next_sibling.content.strip.empty? rel.remove end end rels_doc end |
#public_xml ⇒ xml
Generate the public .xml for a PURL page.
58 59 60 |
# File 'lib/dor/models/concerns/publishable.rb', line 58 def public_xml PublicXmlService.new(self).to_xml end |
#publish_metadata ⇒ Object
Copies this object’s public_xml to the Purl document cache if it is world discoverable
otherwise, it prunes the object's metadata from the document cache
65 66 67 |
# File 'lib/dor/models/concerns/publishable.rb', line 65 def PublishMetadataService.publish(self) end |
#publish_metadata_remotely ⇒ Object
Call dor services app to have it publish the metadata
71 72 73 |
# File 'lib/dor/models/concerns/publishable.rb', line 71 def Dor::Services::Client.object(pid).publish end |
#thumb ⇒ String
Compute the thumbnail for this object following the rules at consul.stanford.edu/display/chimera/The+Rules+of+Thumb Used by PublicXmlService
15 16 17 |
# File 'lib/dor/models/concerns/publishable.rb', line 15 def thumb ThumbnailService.new(self).thumb end |
#thumb_url ⇒ String
Return a full qualified thumbnail image URL if the thumb is computable
34 35 36 37 38 39 |
# File 'lib/dor/models/concerns/publishable.rb', line 34 def thumb_url return unless encoded_thumb thumb_basename = File.basename(encoded_thumb, File.extname(encoded_thumb)) # strip the extension for URL generation "https://#{Dor::Config.stacks.host}/image/iiif/#{thumb_basename}/full/!400,400/0/default.jpg" end |