Sha256: 55abe7eed4e34df670d21d564c2417f50183cc7582d2c9370908bb170ee6dabe

Contents?: true

Size: 929 Bytes

Versions: 3

Compression:

Stored size: 929 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
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
relaton-itu-1.1.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.0.4 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.0.2 lib/relaton_itu/structured_identifier.rb