Sha256: 8e3b7df2faabecb49079260baf9251fe7b681af8287e3962724170de4a825c2a

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

require 'xml/mapping_extensions'

module Datacite
  module Mapping

    # An identifier or identifiers other than the primary {Identifier}
    # applied to the {Resource}.
    class AlternateIdentifier
      include XML::Mapping

      # Initializes a new {AlternateIdentifier}
      # @param type [String] the identifier type
      # @param value [String] the identifier value
      def initialize(type:, value:)
        self.type = type
        self.value = value
      end

      # Sets the type. Cannot be nil.
      # @param val [String] the identifier type
      def type=(val)
        fail ArgumentError, 'No identifier type provided' unless val
        @type = val
      end

      # Sets the value. Cannot be nil.
      # @param val [String] the value
      def value=(val)
        fail ArgumentError, 'No identifier value provided' unless val
        @value = val
      end

      root_element_name 'alternateIdentifier'
      text_node :type, '@alternateIdentifierType'
      text_node :value, 'text()'

      fallback_mapping :datacite_3, :_default
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
datacite-mapping-0.2.5 lib/datacite/mapping/alternate_identifier.rb
datacite-mapping-0.2.4 lib/datacite/mapping/alternate_identifier.rb
datacite-mapping-0.2.3 lib/datacite/mapping/alternate_identifier.rb
datacite-mapping-0.2.2 lib/datacite/mapping/alternate_identifier.rb
datacite-mapping-0.2.1 lib/datacite/mapping/alternate_identifier.rb
datacite-mapping-0.2.0 lib/datacite/mapping/alternate_identifier.rb