class RelatonItu::XMLParser

Private Class Methods

bib_item(item_hash) click to toggle source

@param item_hash [Hash] @return [RelatonItu::ItuBibliographicItem]

# File lib/relaton_itu/xml_parser.rb, line 10
def bib_item(item_hash)
  ItuBibliographicItem.new **item_hash
end
fetch_editorialgroup(ext) click to toggle source

@param ext [Nokogiri::XML::Element] @return [RelatonItu::EditorialGroup]

# File lib/relaton_itu/xml_parser.rb, line 16
def fetch_editorialgroup(ext)
  eg = ext.at("./editorialgroup")
  return unless eg

  EditorialGroup.new(
    bureau: eg.at("bureau")&.text,
    group: itugroup(eg.at("group")),
    subgroup: itugroup(eg.at("subgroup")),
    workgroup: itugroup(eg.at("workgroup")),
  )
end
fetch_structuredidentifier(ext) click to toggle source

@param ext [Nokogiri::XML::Element] @return [RelatonItu::StructuredIdentifier]

# File lib/relaton_itu/xml_parser.rb, line 53
def fetch_structuredidentifier(ext)
  sid = ext.at "./structuredidentifier"
  return unless sid

  br = sid.at("bureau").text
  dn = sid.at("docnumber").text
  an = sid.at("annexid")&.text
  StructuredIdentifier.new(bureau: br, docnumber: dn, annexid: an)
end
itugroup(group) click to toggle source

@param com [Nokogiri::XML::Element] @return [RelatonItu::ItuGroup]

# File lib/relaton_itu/xml_parser.rb, line 30
def itugroup(group)
  return unless group

  ItuGroup.new(
    type: group[:type],
    name: group.at("name").text,
    acronym: group.at("acronym")&.text,
    period: itugroupperiod(group.at("period")),
  )
end
itugroupperiod(period) click to toggle source

@param com [Nokogiri::XML::Element] @return [RelatonItu::ItuGroup::Period]

# File lib/relaton_itu/xml_parser.rb, line 43
def itugroupperiod(period)
  return until period

  ItuGroup::Period.new(
    start: period.at("start").text, finish: period.at("end")&.text,
  )
end