class RelatonUn::UnBibliographicItem

Constants

DISTRIBUTIONS
TYPES

Attributes

distribution[R]

@return [String, NilClass]

job_number[R]

@return [String, NilClass]

session[R]

@return [RelatonUn::Session, NilClass]

submissionlanguage[R]

@return [Array<String>]

Public Class Methods

new(**args) click to toggle source

@param session [RelatonUn::Session, NilClass] @param distribution [String, nil] @param job_number [String, nil]

Calls superclass method
# File lib/relaton_un/un_bibliographic_item.rb, line 25
def initialize(**args)
  if args[:distribution] && !DISTRIBUTIONS.has_value?(args[:distribution])
    warn "[relaton-un] WARNING: invalid distribution: "\
    "#{args[:distribution]}"
  end
  @submissionlanguage = args.delete :submissionlanguage
  @distribution = args.delete :distribution
  @session = args.delete :session
  @job_number = args.delete :job_number
  super **args
end

Public Instance Methods

to_asciibib(prefix = "") click to toggle source

@param prefix [String] @return [String]

Calls superclass method
# File lib/relaton_un/un_bibliographic_item.rb, line 70
def to_asciibib(prefix = "") # rubocop:disable Metrics/AbcSize
  pref = prefix.empty? ? prefix : prefix + "."
  out = super
  submissionlanguage.each do |sl|
    out += "#{pref}submissionlanguage:: #{sl}\n"
  end
  out += "#{pref}distribution:: #{distribution}\n" if distribution
  out += session.to_asciibib prefix if session
  out += "#{pref}job_number:: #{job_number}\n" if job_number
  out
end
to_hash() click to toggle source

@return [Hash]

Calls superclass method
# File lib/relaton_un/un_bibliographic_item.rb, line 57
def to_hash # rubocop:disable Metrics/AbcSize
  hash = super
  if submissionlanguage&.any?
    hash["submissionlanguage"] = single_element_array submissionlanguage
  end
  hash["distribution"] = distribution if distribution
  hash["session"] = session.to_hash if session
  hash["job_number"] = job_number if job_number
  hash
end
to_xml(**opts) click to toggle source

@param opts [Hash] @option opts [Nokogiri::XML::Builder] :builder XML builder @option opts [Boolean] :bibdata @option opts [String] :lang language @return [String] XML

Calls superclass method
# File lib/relaton_un/un_bibliographic_item.rb, line 42
def to_xml(**opts) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
  super **opts do |b|
    b.ext do
      b.doctype doctype if doctype
      submissionlanguage&.each { |sl| b.submissionlanguage sl }
      editorialgroup&.to_xml b
      ics&.each { |i| i.to_xml b }
      b.distribution distribution if distribution
      session&.to_xml b if session
      b.job_number job_number if job_number
    end
  end
end