class CvssSuite::CvssMetric

This class represents any CVSS metric.

Public Class Methods

new(selected_properties) click to toggle source

Creates a new CVSS metric by properties

# File lib/cvss_suite/cvss_metric.rb, line 17
def initialize(selected_properties)
  @properties = []
  init_properties
  extract_selected_values_from selected_properties
end

Public Instance Methods

count() click to toggle source

Returns number of properties for this metric.

# File lib/cvss_suite/cvss_metric.rb, line 34
def count
  @properties.count
end
valid?() click to toggle source

Returns if the metric is valid.

# File lib/cvss_suite/cvss_metric.rb, line 25
def valid?
  @properties.each do |property|
    return false unless property.valid?
  end
  true
end

Private Instance Methods

extract_selected_values_from(selected_properties) click to toggle source
# File lib/cvss_suite/cvss_metric.rb, line 40
def extract_selected_values_from(selected_properties)
  selected_properties.each do |selected_property|
    property = @properties.detect do |p|
      p.abbreviation == selected_property[:name] && p.position.include?(selected_property[:position])
    end
    property&.set_selected_value selected_property[:selected]
  end
end