Sha256: eb88883294d51072bb79093c3256810675f9da3fcbde411e0d11c2240fe76717
Contents?: true
Size: 1.52 KB
Versions: 11
Compression:
Stored size: 1.52 KB
Contents
require 'builder' # This module provide Dublin Core export based on the document's semantic values module Blacklight::Document::DublinCore def self.extended(document) # Register our exportable formats Blacklight::Document::DublinCore.register_export_formats( document ) end def self.register_export_formats(document) document.will_export_as(:xml) document.will_export_as(:dc_xml, "text/xml") document.will_export_as(:oai_dc_xml, "text/xml") end def dublin_core_field_names [:contributor, :coverage, :creator, :date, :description, :format, :identifier, :language, :publisher, :relation, :rights, :source, :subject, :title, :type] end # dublin core elements are mapped against the #dublin_core_field_names whitelist. def export_as_oai_dc_xml xml = Builder::XmlMarkup.new xml.tag!("oai_dc:dc", 'xmlns:oai_dc' => "http://www.openarchives.org/OAI/2.0/oai_dc/", 'xmlns:dc' => "http://purl.org/dc/elements/1.1/", 'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance", 'xsi:schemaLocation' => %{http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd}) do self.to_semantic_values.select { |field, values| dublin_core_field_names.include? field.to_sym }.each do |field,values| values.each do |v| xml.tag! 'dc:' + field.to_s, v end end end xml.target! end alias_method :export_as_xml, :export_as_oai_dc_xml alias_method :export_as_dc_xml, :export_as_oai_dc_xml end
Version data entries
11 entries across 11 versions & 1 rubygems