module OpenscapParser::Subs
Public Class Methods
included(base)
click to toggle source
# File lib/openscap_parser/subs.rb, line 7 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
Public Instance Methods
map_sub_nodes(children, set_values)
click to toggle source
# File lib/openscap_parser/subs.rb, line 20 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
replace_sub(sub, set_values)
click to toggle source
# File lib/openscap_parser/subs.rb, line 30 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
sub_nodes(xpath = './/sub')
click to toggle source
# File lib/openscap_parser/subs.rb, line 16 def sub_nodes(xpath = './/sub') @sub_nodes ||= xpath_nodes(xpath) end
subs()
click to toggle source
# File lib/openscap_parser/subs.rb, line 9 def subs return [] unless sub_nodes @subs ||= sub_nodes.map do |xml| Sub.new(parsed_xml: xml) end end