class CVESchema::CVE::Impact
Attributes
cvss_v2[R]
@return [CVSSv2, nil]
cvss_v3[R]
@return [CVSSv3, nil]
cvssv2[R]
@return [CVSSv2, nil]
cvssv3[R]
@return [CVSSv3, nil]
Public Class Methods
from_json(json)
click to toggle source
Maps the parsed JSON to a Symbol Hash for {#initialize}.
@param [Hash{String => Object}] json
The parsed JSON.
@return [Hash{Symbol => Object}]
The mapped Symbol Hash.
@api semipublic
# File lib/cve_schema/cve/impact.rb, line 43 def self.from_json(json) # HACK: the "impact" value is often an Array containing a single Hash hash = case json when Hash then json when Array then json[0] else raise(InvalidJSON,'"impact" is neither a Hash or Array') end { cvssv2: hash['cvssv2'] && CVSSv2.load(hash['cvssv2']), cvssv3: hash['cvssv3'] && CVSSv3.load(hash['cvssv3']) } end
load(json)
click to toggle source
Loads the impact object from the parsed JSON.
@param [Hash{String => Object}] json
The parsed JSON.
@return [Impact]
The loaded impact object.
@api semipublic
# File lib/cve_schema/cve/impact.rb, line 69 def self.load(json) new(**from_json(json)) end
new(cvssv2: nil, cvssv3: nil)
click to toggle source
Initializes the impact object.
@param [CVSSv2, nil] cvssv2
The CVSSv2 object.
@param [CVSSv3, nil] cvssv3
The CVSSv3 object.
# File lib/cve_schema/cve/impact.rb, line 27 def initialize(cvssv2: nil, cvssv3: nil) @cvssv2 = cvssv2 @cvssv3 = cvssv3 end