module NipperParser::ParserUtils

ParserUtils is a helper module for parsers' quick and dirty operations.

Constants

Attribute

Public Instance Methods

attributes(attr) click to toggle source

@param attr [Nokogiri::XML::Element] @return [ParserUtils::Attribute]

# File lib/nipper_parser/parsers/parser_utils.rb, line 34
def attributes(attr)
  require 'pp'
  # pp caller_locations

  Attribute.new(
      attr.attributes['index'].text.to_f,
      attr.attributes['title'].text,
      attr.attributes['ref'].text,
  )
end
generate_table(elements) click to toggle source

generate_table parses the table elements @param elements [Nokogiri::XML::Element] @return [Hash]

# File lib/nipper_parser/parsers/parser_utils.rb, line 12
def generate_table(elements)
  headers = elements[0].elements.map{|header| header.text.downcase.tr(' ', '_').to_sym}
  body    = elements[1].elements.map{|e1| e1.elements.map{|e2| e2.text}}

  body.map{|element| headers.zip(element).to_h}
end
rating_table(elements) click to toggle source

risk_table parses risk elements @param elements [Nokogiri::XML::Element] @return [Hash]

# File lib/nipper_parser/parsers/parser_utils.rb, line 22
def rating_table(elements)
 {
      elements[0].name.to_sym => elements[0].text,
      elements[1].name.to_sym => elements[1].text,
      elements[2].name.to_sym => elements[2].text,
      elements[3].name.to_sym => elements[3].text
  }
end