module Inspec::Impact

Impact scores based off CVSS 3.0

Constants

IMPACT_SCORES

Public Class Methods

impact_from_string(value) click to toggle source
# File lib/inspec/impact.rb, line 13
def self.impact_from_string(value)
  # return if its a number
  return value if is_number?(value)
  raise Inspec::ImpactError, "'#{value}' is not a valid impact name. Valid impact names: none, low, medium, high, critical." unless IMPACT_SCORES.key?(value.downcase)

  IMPACT_SCORES[value]
end
is_number?(value) click to toggle source
# File lib/inspec/impact.rb, line 21
def self.is_number?(value)
  Float(value)
  true
rescue
  false
end
string_from_impact(value) click to toggle source
# File lib/inspec/impact.rb, line 28
def self.string_from_impact(value)
  value = value.to_f
  raise Inspec::ImpactError, "'#{value}' is not a valid impact score. Valid impact scores: [0.0 - 1.0]." if value < 0 || value > 1

  IMPACT_SCORES.reverse_each do |name, impact|
    return name if value >= impact
  end
end