Sha256: e0091e99e193e194f84d9c01442906763dc217005786feee4790dab7cef303d5
Contents?: true
Size: 930 Bytes
Versions: 11
Compression:
Stored size: 930 Bytes
Contents
# frozen_string_literal: true require 'openscap_parser/sub' module OpenscapParser module Subs def self.included(base) base.class_eval do def subs return [] unless sub_nodes @subs ||= sub_nodes.map do |xml| Sub.new(parsed_xml: xml) end end def sub_nodes(xpath = './/sub') @sub_nodes ||= xpath_nodes(xpath) end def map_sub_nodes(children, set_values) children.map do |child| next child if child.name == 'text' next replace_sub(Sub.new(parsed_xml: child), set_values) if child.name == 'sub' child end end private def replace_sub(sub, set_values) set_value = set_values.find { |set_value| set_value.id == sub.id } return unless set_value set_value.parsed_xml.children.first end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems