Sha256: 953e77b430e153b60de29e01c52e8e0180556d978c7635bebe49d329010794b0

Contents?: true

Size: 967 Bytes

Versions: 3

Compression:

Stored size: 967 Bytes

Contents

module RelatonItu
  class StructuredIdentifier
    # @return [String]
    attr_reader :bureau, :docnumber

    # @return [String, NilClass]
    attr_reader :annexid

    # @param bureau [String] T, D, or R
    # @param docnumber [String]
    # @param annexid [String, NilClass]
    def initialize(bureau:, docnumber:, annexid: nil)
      unless EditorialGroup::BUREAUS.include? bureau
        warn "[relaton-itu] WARNING: invalid bureau: #{bureau}"
      end
      @bureau = bureau
      @docnumber = docnumber
      @annexid = annexid
    end

    # @param builder [Nokogiri::XML::Builder]
    def to_xml(builder)
      builder.structuredidentifier do |b|
        b.bureau bureau
        b.docnumber docnumber
        b.annexid annexid if annexid
      end
    end

    # @return [Hash]
    def to_hash
      hash = { bureau: bureau, docnumber: docnumber }
      hash[:annexid] = annexid if annexid
      hash
    end

    def presence?
      true
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/relaton-itu-1.2.0/lib/relaton_itu/structured_identifier.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/relaton-itu-1.2.0/lib/relaton_itu/structured_identifier.rb
relaton-itu-1.2.0 lib/relaton_itu/structured_identifier.rb