Sha256: ccf6db47fbfea0522466c408a2d1cde8b7b81a52199092ee5bde33b0fd532be9

Contents?: true

Size: 1.25 KB

Versions: 7

Compression:

Stored size: 1.25 KB

Contents

module RelatonIec
  class XMLParser < RelatonIsoBib::XMLParser
    class << self
      # Override RelatonIsoBib::XMLParser.item_data method.
      # @param isoitem [Nokogiri::XML::Element]
      # @returtn [Hash]
      def item_data(isoitem) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
        data = super
        ext = isoitem.at "./ext"
        return data unless ext

        data[:function] = ext.at("./function")&.text
        data[:updates_document_type] = ext.at("./updates-document-type")&.text
        aci = ext.at("./accessibility-color-inside")
        data[:accessibility_color_inside] = aci.text == "true" if aci
        data[:price_code] = ext.at("./price-code")&.text
        cp = ext.at("./cen-processing")
        data[:cen_processing] = cp.text == "true" if cp
        data[:secretary] = ext.at("./secretary")&.text
        data[:interest_to_committees] = ext.at("./interest-to-committees")&.text
        data
      end

      private

      # override RelatonIsoBib::IsoBibliographicItem.bib_item method
      # @param item_hash [Hash]
      # @return [RelatonIec::IecBibliographicItem]
      def bib_item(item_hash)
        IecBibliographicItem.new(**item_hash)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
relaton-iec-1.18.0 lib/relaton_iec/xml_parser.rb
relaton-iec-1.17.0 lib/relaton_iec/xml_parser.rb
relaton-iec-1.16.4 lib/relaton_iec/xml_parser.rb
relaton-iec-1.16.3 lib/relaton_iec/xml_parser.rb
relaton-iec-1.16.2 lib/relaton_iec/xml_parser.rb
relaton-iec-1.16.1 lib/relaton_iec/xml_parser.rb
relaton-iec-1.16.0 lib/relaton_iec/xml_parser.rb