Sha256: 07a334cb1556c9617498fb75149f4c0aa76e5e8520b83fadba309e2dbfa23b72

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 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

      root_element_name 'alternateIdentifier'

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

      maybe_alias :_type=, :type=
      private :_type=
      maybe_alias :_value=, :value=
      private :_value=

      # 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
        self._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
        self._value = val
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
datacite-mapping-0.1.6 lib/datacite/mapping/alternate_identifier.rb