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

Version Path
datacite-mapping-0.1.17.2 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.17.1 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.17 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.16 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.15 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.14 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.13 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.12 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.10 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.9 lib/datacite/mapping/name_identifier.rb
datacite-mapping-0.1.7 lib/datacite/mapping/name_identifier.rb