Sha256: b66786bf8aa48fa3fa749b2d62c40d35dc846600e72af604e9a2021a776051de

Contents?: true

Size: 1.26 KB

Versions: 33

Compression:

Stored size: 1.26 KB

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

    # @param prefix [String]
    # @return [String]
    def to_asciibib(prefix)
      pref = prefix.empty? ? prefix : prefix + "."
      pref += "structuredidentifier"
      out = "#{pref}.bureau:: #{bureau}\n#{pref}.docnumber:: #{docnumber}\n"
      out += "#{pref}.annexid:: #{annexid}\n" if annexid
      out
    end

    def presence?
      true
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
relaton-itu-1.16.1 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.16.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.14.3 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.14.2 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.14.1 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.14.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.13.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.12.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.11.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.10.2 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.10.1 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.10.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.9.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.8.2 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.8.1 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.8.0 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.7.10 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.7.9 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.7.8 lib/relaton_itu/structured_identifier.rb
relaton-itu-1.7.7 lib/relaton_itu/structured_identifier.rb