Sha256: 001c2f81bab5134bf0dd94edffb146b9f8b620e6c5b03376459f2f27e288c854

Contents?: true

Size: 918 Bytes

Versions: 4

Compression:

Stored size: 918 Bytes

Contents

require "nokogiri"

module RelatonIetf
  class XMLParser < RelatonBib::XMLParser
    class << self
      # def from_xml(xml)
      #   doc = Nokogiri::XML(xml)
      #   doc.remove_namespaces!
      #   ietfitem = doc.at("/bibitem|/bibdata")
      #   if ietfitem
      #     RelatonIetf::IetfBibliographicItem.new(item_data(ietfitem))
      #   elsif
      #     warn "[relato-ietf] can't find bibitem or bibdata element in the XML"
      #   end
      # end

      private

      # override RelatonBib::BibliographicItem.bib_item method
      # @param item_hash [Hash]
      # @return [RelatonIetf::IetfBibliographicItem]
      def bib_item(item_hash)
        IetfBibliographicItem.new item_hash
      end

      def item_data(ietfitem)
        data = super
        ext = ietfitem.at "./ext"
        return data unless ext

        data[:doctype] = ext.at("./doctype")&.text
        data
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/relaton-ietf-1.2.1/lib/relaton_ietf/xml_parser.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/relaton-ietf-1.2.1/lib/relaton_ietf/xml_parser.rb
relaton-ietf-1.2.1 lib/relaton_ietf/xml_parser.rb
relaton-ietf-1.2.0 lib/relaton_ietf/xml_parser.rb