Sha256: 9a5e5c1a7e99315d3d2d92469d27dfee0b69e15cedd856c91f3d63bb96406e52
Contents?: true
Size: 1.32 KB
Versions: 44
Compression:
Stored size: 1.32 KB
Contents
# frozen_string_literal: true module Cocina module Models module Mapping module ToMods # Maps roles from cocina to MODS XML class RoleWriter # @params [Nokogiri::XML::Builder] xml # @params [Cocina::Models::DescriptiveValue] role def self.write(xml:, role:) new(xml: xml, role: role).write end def initialize(xml:, role:) @xml = xml @role = role end def write xml.role do attributes = { valueURI: role.uri, authority: role.source&.code, authorityURI: role.source&.uri }.compact if role.value.present? attributes[:type] = 'text' value = if role.source&.value == 'Stanford self-deposit contributor types' role.value.downcase else role.value end xml.roleTerm value, attributes end if role.code.present? attributes[:type] = 'code' xml.roleTerm role.code, attributes end end end private attr_reader :xml, :role end end end end end
Version data entries
44 entries across 44 versions & 1 rubygems