openscap_parser 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7726cf3e8cf53af20cb73fbddef5c95e92ca2a748e0da3a229a015918b382d34
|
4
|
+
data.tar.gz: f9ebf783cce54e930970ea94da5819dc50e638ec3cc91ae3c38d5e2deb705f24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05e6983a1a1ce75fc9fa216a078df30be423ab56e81e863eba5ce0cab837f8e0a4de23550981dc61162d0bba9113e6b065c83103cff76714b418d3d2941083b2
|
7
|
+
data.tar.gz: 6a0340c5bd19e82b3aee053d19ebccf3a0fdb0bc0287d32145ce5380417adabbaf03b85d2702a9b7830d286a3ca6af21f32d353a4265e7a807f4209428c5c184
|
@@ -6,6 +6,7 @@ require 'openscap_parser/rules'
|
|
6
6
|
require 'openscap_parser/profiles'
|
7
7
|
require 'openscap_parser/rule_references'
|
8
8
|
require 'openscap_parser/groups'
|
9
|
+
require 'openscap_parser/value_definitions'
|
9
10
|
|
10
11
|
# Mimics openscap-ruby Benchmark interface
|
11
12
|
module OpenscapParser
|
@@ -15,6 +16,7 @@ module OpenscapParser
|
|
15
16
|
include OpenscapParser::RuleReferences
|
16
17
|
include OpenscapParser::Profiles
|
17
18
|
include OpenscapParser::Groups
|
19
|
+
include OpenscapParser::ValueDefinitions
|
18
20
|
|
19
21
|
def id
|
20
22
|
@id ||= @parsed_xml['id']
|
data/lib/openscap_parser/rule.rb
CHANGED
@@ -63,7 +63,7 @@ module OpenscapParser
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def rule_identifier
|
66
|
-
@identifier ||= RuleIdentifier.new(parsed_xml: identifier_node)
|
66
|
+
@identifier ||= identifier_node && RuleIdentifier.new(parsed_xml: identifier_node)
|
67
67
|
end
|
68
68
|
alias :identifier :rule_identifier
|
69
69
|
|
@@ -83,6 +83,10 @@ module OpenscapParser
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
def values
|
87
|
+
parsed_xml.xpath("check/check-export").map { |r| r.at_xpath('@value-id')&.text }
|
88
|
+
end
|
89
|
+
|
86
90
|
def to_h
|
87
91
|
{
|
88
92
|
:id => id,
|
@@ -95,7 +99,8 @@ module OpenscapParser
|
|
95
99
|
:rationale => rationale,
|
96
100
|
:identifier => rule_identifier.to_h,
|
97
101
|
:parent_id => parent_id,
|
98
|
-
:parent_type => parent_type
|
102
|
+
:parent_type => parent_type,
|
103
|
+
:values => values
|
99
104
|
}
|
100
105
|
end
|
101
106
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module OpenscapParser
|
3
|
+
class ValueDefinition < XmlNode
|
4
|
+
include OpenscapParser::Util
|
5
|
+
|
6
|
+
def id
|
7
|
+
@id ||= parsed_xml['id']
|
8
|
+
end
|
9
|
+
|
10
|
+
def description
|
11
|
+
@description ||= newline_to_whitespace(parsed_xml.at_css('description')&.text)
|
12
|
+
end
|
13
|
+
|
14
|
+
def title
|
15
|
+
@title ||= parsed_xml.at_css('title')&.text
|
16
|
+
end
|
17
|
+
|
18
|
+
def type
|
19
|
+
@type ||= parsed_xml['type'] || 'string'
|
20
|
+
end
|
21
|
+
|
22
|
+
def lower_bound
|
23
|
+
@lower_bound ||= begin
|
24
|
+
lower_bound_element = parsed_xml.at_xpath("lower-bound[@selector='']") || parsed_xml.at_xpath('lower-bound[not(@selector)]')
|
25
|
+
lower_bound_element&.text
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def upper_bound
|
30
|
+
@upper_bound ||= begin
|
31
|
+
upper_bound_element = parsed_xml.at_xpath("upper-bound[@selector='']") || parsed_xml.at_xpath('upper-bound[not(@selector)]')
|
32
|
+
upper_bound_element&.text
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def default_value
|
37
|
+
# The default value is the value element with a empty or absent @selector
|
38
|
+
# If there is no value element with an empty or absent @selector, the first value in
|
39
|
+
# the top down processing shall be the default element
|
40
|
+
@default_value ||= begin
|
41
|
+
value_element = parsed_xml.at_xpath("value[@selector='']") || parsed_xml.at_xpath('value[not(@selector)]') || parsed_xml.xpath("value")[0]
|
42
|
+
value_element&.text
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def to_h
|
47
|
+
{
|
48
|
+
:id => id,
|
49
|
+
:title => title,
|
50
|
+
:description => description,
|
51
|
+
:type => type,
|
52
|
+
:lower_bound => lower_bound,
|
53
|
+
:upper_bound => upper_bound,
|
54
|
+
:default_value => default_value
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'openscap_parser/value_definition'
|
4
|
+
|
5
|
+
module OpenscapParser
|
6
|
+
# Methods related to parsing values
|
7
|
+
module ValueDefinitions
|
8
|
+
def self.included(base)
|
9
|
+
base.class_eval do
|
10
|
+
def value_definitions
|
11
|
+
@value_definitions ||= value_definition_nodes.map do |vdn|
|
12
|
+
ValueDefinition.new(parsed_xml: vdn)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def value_definition_nodes(xpath = ".//Value")
|
17
|
+
xpath_nodes(xpath)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/openscap_parser.rb
CHANGED
@@ -7,6 +7,7 @@ require 'openscap_parser/test_results'
|
|
7
7
|
require 'openscap_parser/profiles'
|
8
8
|
require 'openscap_parser/rules'
|
9
9
|
require 'openscap_parser/groups'
|
10
|
+
require 'openscap_parser/value_definitions'
|
10
11
|
require 'openscap_parser/rule_results'
|
11
12
|
require 'openscap_parser/tailorings'
|
12
13
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openscap_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Lobato Garcia
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-12-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -176,6 +176,8 @@ files:
|
|
176
176
|
- lib/openscap_parser/test_result_file.rb
|
177
177
|
- lib/openscap_parser/test_results.rb
|
178
178
|
- lib/openscap_parser/util.rb
|
179
|
+
- lib/openscap_parser/value_definition.rb
|
180
|
+
- lib/openscap_parser/value_definitions.rb
|
179
181
|
- lib/openscap_parser/version.rb
|
180
182
|
- lib/openscap_parser/xml_file.rb
|
181
183
|
- lib/openscap_parser/xml_node.rb
|