Sha256: 5e3ab023c403e20536478ccc1b57144f58d39ee8c59c77bc33bb1da7279f8fd1
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
require 'xml/mapping' module Datacite module Mapping # The persistent identifier that identifies the resource. # # @!attribute [r] identifier_type # @return [String] the identifier type (always 'DOI') # @!attribute [rw] value # @return [String] the identifier value. Must be a valid DOI value (`10.`_registrant code_`/`_suffix_) class Identifier include XML::Mapping text_node :identifier_type, '@identifierType' text_node :value, 'text()' # Initializes a new {Identifier} # @param value [String] # the identifier value. Must be a valid DOI value (`10.`_registrant code_`/`_suffix_) def initialize(value:) self.identifier_type = 'DOI' self.value = value end maybe_alias :_value=, :value= private :_value= maybe_alias :_identifier_type=, :identifier_type= private :_identifier_type= def value=(v) fail ArgumentError, "Identifier value '#{v}' is not a valid DOI" unless v.match(%r{10\..+/.+}) self._value = v end # Sets the identifier type. Should only be called by the XML mapping engine. # @param v [String] # the identifier type (always 'DOI') def identifier_type=(v) fail ArgumentError, "Identifier type '#{v}' must be 'DOI'" unless 'DOI' == v self._identifier_type = v end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
datacite-mapping-0.1.6 | lib/datacite/mapping/identifier.rb |