Sha256: edfc0ab9fa44498a1648d53307e26424f3cb6302459e5337dfc3d269105f3081
Contents?: true
Size: 1.37 KB
Versions: 11
Compression:
Stored size: 1.37 KB
Contents
require 'xml/mapping_extensions' module Datacite module Mapping # Uniquely identifies an individual or legal entity, according to various schemes. class NameIdentifier include XML::Mapping # Initializes a new {NameIdentifier} # @param scheme [Scheme] the name identifier scheme. Cannot be nil. # @param scheme_uri [URI, nil] the URI of the identifier scheme. Optional. # @param value [String] the identifier value. Cannot be nil. def initialize(scheme:, scheme_uri: nil, value:) self.scheme = scheme self.scheme_uri = scheme_uri self.value = value end def scheme=(v) fail ArgumentError, 'Scheme cannot be empty or nil' unless v && !v.empty? @scheme = v end def value=(v) fail ArgumentError, 'Value cannot be empty or nil' unless v && !v.empty? @value = v end root_element_name 'nameIdentifier' # @!attribute [rw] scheme # @return [String] the name identifier scheme. Cannot be nil. text_node :scheme, '@nameIdentifierScheme' # @!attribute [rw] scheme_uri # @return [URI, nil] the URI of the identifier scheme. Optional. uri_node :scheme_uri, '@schemeURI', default_value: nil # @!attribute [rw] value # @return [String] the identifier value. Cannot be nil. text_node :value, 'text()' end end end
Version data entries
11 entries across 11 versions & 1 rubygems