Sha256: b131a2a06749278f9ef1a236be50ba80737516ec820056b4b83d5ce0b11c375b
Contents?: true
Size: 1.94 KB
Versions: 4
Compression:
Stored size: 1.94 KB
Contents
class ModsDisplay::AccessCondition < ModsDisplay::Field def fields return_fields = @values.map do |value| ModsDisplay::Values.new(:label => displayLabel(value) || access_label(value), :values => [process_access_statement(value)]) end collapse_fields(return_fields) end private def process_access_statement(element) case normalize_type(element) when "copyright" copyright_statement(element) when "license" license_statement(element) else element.text end end def copyright_statement(element) element.text.gsub(/\(c\) copyright/i, "©").gsub(/\(c\)/i, "©") end def license_statement(element) element.text[/^(.*) (.*):(.*)$/] output = "<div class='#{[$1,$2].join('-').downcase}'>" if license_link($1, $2) output << "<a href='#{license_link($1, $2)}'>#{$3.strip}</a>" else output << $3.strip end output << "</div>" end def license_code_urls {"cc" => "http://creativecommons.org/licenses/", "odc" => "http://opendatacommons.org/licenses/"} end def license_link(code, type) code = code.downcase if license_code_urls.has_key?(code) "#{license_code_urls[code]}#{type.downcase}#{"/#{@config.cc_license_version}/" if code == 'cc'}" end end def access_label(element) type = normalize_type(element) if access_labels.has_key?(type) return access_labels[type] end I18n.t('mods_display.access_condition') end def normalize_type(element) type = element.attributes["type"] if type.respond_to?(:value) return type.value.strip.gsub(/\s*/, "").downcase end "" end def access_labels {"useandreproduction" => I18n.t('mods_display.use_and_reproduction'), "restrictiononaccess" => I18n.t('mods_display.restriction_on_access'), "copyright" => I18n.t('mods_display.copyright'), "license" => I18n.t('mods_display.license') } end end
Version data entries
4 entries across 4 versions & 1 rubygems