openscap_parser 1.1.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 159fcf26b6fe71666a9d057d89d772589ac8436d783b7773556121b6b5c11654
4
- data.tar.gz: f8181135885961c284b2dabfd4de0408d8888e7cf4271da699f0e42fc0e30bf6
3
+ metadata.gz: e5f6f71c708392c7b9171af1bc8a3eab1e3dd70ce64f672051035d404a1e5fab
4
+ data.tar.gz: d81ea5da1fbc18bdf0dd96ca46f2ddda8dfdc20e6e8dcf17508431667c18512d
5
5
  SHA512:
6
- metadata.gz: be89da681f6a355591027ce73b0dd3a68bcbd73bcc442a2d4e21c2a51485a9e841d493bafef8757aff5f85025e0a5251d3b1519801b2fdb1343fe070b165fe6b
7
- data.tar.gz: 8949839744c203ec9074e3069097a3d98739eb65c7a76841c117f456eb02c55c3eee1576cf3b550501012b52f549d8aaaac0f601350d5f92e37a79e2a6602117
6
+ metadata.gz: 44a8d17f96a637c52c4a516673408765ebc36598406463096f7a75310af8a5d2df48a8550e48a0634e4afda9af309cd3e1b0f8e45d241f02592e56d775185ac3
7
+ data.tar.gz: 3f3d9233a8bab0d303d15423db561875da0409856ecbe3ad957ed67c2b6ed91e98c8488dd15b7294b47d74d5b6f7a46c672628454bacc7e32617bef93fc9473c
@@ -1,3 +1,5 @@
1
+ require 'openscap_parser/regex_handler'
2
+
1
3
  module OpenscapParser
2
4
  class Profile < XmlNode
3
5
  def id
@@ -20,7 +22,27 @@ module OpenscapParser
20
22
  end
21
23
 
22
24
  def selected_rule_ids
23
- @selected_rule_ids ||= @parsed_xml.xpath("select[@selected='true']/@idref") &&
25
+ # Look for selected rule ids where the idref contains '_rule_' that is not preceded by 'group'
26
+ @selected_rule_ids ||= @parsed_xml.xpath("select[@selected='true']
27
+ [regex(@idref, '^((?!_group_).)*?(_rule_).*$')]
28
+ /@idref", RegexHandler) &&
29
+ @parsed_xml.xpath("select[@selected='true']
30
+ [regex(@idref, '^((?!_group_).)*?(_rule_).*$')]
31
+ /@idref", RegexHandler).map(&:text)
32
+ end
33
+
34
+ def unselected_group_ids
35
+ # Look for group ids that are not selected where the idref contains '_group_' that is not preceded by 'rule'
36
+ @unselected_group_ids ||= @parsed_xml.xpath("select[@selected='false']
37
+ [regex(@idref, '^((?!_rule_).)*?(_group_).*$')]
38
+ /@idref", RegexHandler) &&
39
+ @parsed_xml.xpath("select[@selected='false']
40
+ [regex(@idref, '^((?!_rule_).)*?(_group_).*$')]
41
+ /@idref", RegexHandler).map(&:text)
42
+ end
43
+
44
+ def selected_entity_ids
45
+ @selected_entity_ids ||= @parsed_xml.xpath("select[@selected='true']/@idref") &&
24
46
  @parsed_xml.xpath("select[@selected='true']/@idref").map(&:text)
25
47
  end
26
48
 
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenscapParser
4
+ class RegexHandler < XmlNode
5
+ def self.regex node_set, regex
6
+ node_set.find_all { |node| node.to_s =~ /#{regex}/ }
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module OpenscapParser
2
- VERSION = "1.1.0"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openscap_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Lobato Garcia
8
8
  - Andrew Kofink
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-03-01 00:00:00.000000000 Z
12
+ date: 2022-10-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -156,6 +156,7 @@ files:
156
156
  - lib/openscap_parser/oval_report.rb
157
157
  - lib/openscap_parser/profile.rb
158
158
  - lib/openscap_parser/profiles.rb
159
+ - lib/openscap_parser/regex_handler.rb
159
160
  - lib/openscap_parser/rule.rb
160
161
  - lib/openscap_parser/rule_identifier.rb
161
162
  - lib/openscap_parser/rule_reference.rb
@@ -191,7 +192,7 @@ homepage: https://github.com/OpenSCAP/openscap_parser
191
192
  licenses:
192
193
  - MIT
193
194
  metadata: {}
194
- post_install_message:
195
+ post_install_message:
195
196
  rdoc_options: []
196
197
  require_paths:
197
198
  - lib
@@ -206,8 +207,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  - !ruby/object:Gem::Version
207
208
  version: '0'
208
209
  requirements: []
209
- rubygems_version: 3.2.16
210
- signing_key:
210
+ rubyforge_project:
211
+ rubygems_version: 2.7.3
212
+ signing_key:
211
213
  specification_version: 4
212
214
  summary: Parse OpenSCAP content
213
215
  test_files: []