Skip to content

Commit 34c5253

Browse files
authored
Parse results from OVAL report (#31)
1 parent fa7433c commit 34c5253

File tree

5 files changed

+58895
-0
lines changed

5 files changed

+58895
-0
lines changed

lib/openscap_parser.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
require 'openscap_parser/datastream_file'
1414
require 'openscap_parser/test_result_file'
1515
require 'openscap_parser/tailoring_file'
16+
require 'openscap_parser/oval_report'
1617

1718
require 'date'
1819
require 'railtie' if defined?(Rails)

lib/openscap_parser/oval_report.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# frozen_string_literal: true
2+
require 'openscap_parser/xml_file'
3+
require 'oval/definition_result'
4+
5+
module OpenscapParser
6+
class OvalReport < XmlFile
7+
def definition_results
8+
@definition_results ||= definition_result_nodes.map { |node| ::Oval::DefinitionResult.new parsed_xml: node }
9+
end
10+
11+
def definition_result_nodes(xpath = "./oval_results/results/system/definitions/definition")
12+
xpath_nodes(xpath)
13+
end
14+
end
15+
end

lib/oval/definition_result.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
require 'openscap_parser/xml_node'
2+
3+
module Oval
4+
class DefinitionResult < ::OpenscapParser::XmlNode
5+
def definition_id
6+
@definition_id ||= @parsed_xml['definition_id']
7+
end
8+
9+
def result
10+
@result ||= @parsed_xml['result']
11+
end
12+
13+
def to_h
14+
{ :id => definition_id, :result => result }
15+
end
16+
end
17+
end

0 commit comments

Comments
 (0)