Class: Utils::XCCDFScore

Inherits:
Object show all
Defined in:
lib/utilities/xccdf/xccdf_score.rb

Overview

Perform scoring calculations for the different types that is used in a TestResult score.

Instance Method Summary collapse

Constructor Details

#initialize(groups, rule_results) ⇒ XCCDFScore

Returns a new instance of XCCDFScore.

Parameters:



6
7
8
9
# File 'lib/utilities/xccdf/xccdf_score.rb', line 6

def initialize(groups, rule_results)
  @groups = groups
  @rule_results = rule_results
end

Instance Method Details

#absolute_scoreObject

urn:xccdf:scoring:absolute

Returns:

  • ScoreType



33
34
35
36
# File 'lib/utilities/xccdf/xccdf_score.rb', line 33

def absolute_score
  results = score_benchmark_with_weights(true)
  HappyMapperTools::Benchmark::ScoreType.new('urn:xccdf:scoring:absolute', 1, (results[:max] == results[:score] && results[:max].positive? ? 1 : 0))
end

#default_scoreObject

Calculate and return the urn:xccdf:scoring:default score for the entire benchmark.

Returns:

  • ScoreType



13
14
15
# File 'lib/utilities/xccdf/xccdf_score.rb', line 13

def default_score
  HappyMapperTools::Benchmark::ScoreType.new('urn:xccdf:scoring:default', 100, score_benchmark_default)
end

#flat_scoreObject

urn:xccdf:scoring:flat

Returns:

  • ScoreType



19
20
21
22
# File 'lib/utilities/xccdf/xccdf_score.rb', line 19

def flat_score
  results = score_benchmark_with_weights(true)
  HappyMapperTools::Benchmark::ScoreType.new('urn:xccdf:scoring:flat', results[:max], results[:score])
end

#flat_unweighted_scoreObject

urn:xccdf:scoring:flat-unweighted

Returns:

  • ScoreType



26
27
28
29
# File 'lib/utilities/xccdf/xccdf_score.rb', line 26

def flat_unweighted_score
  results = score_benchmark_with_weights(false)
  HappyMapperTools::Benchmark::ScoreType.new('urn:xccdf:scoring:flat-unweighted', results[:max], results[:score])
end