class YAVDB::Advisory
TODO: Enable `Style/StructInheritance` - check `attr_reader:` or `initialize` method
Public Class Methods
load(path)
click to toggle source
# File lib/yavdb/dtos/advisory.rb, line 44 def self.load(path) data = YAML.load_file(path) raise("Advisory data in #{path.dump} was not an Array") unless data.is_a?(Array) data.map do |advisory| raise("Advisory data in #{path.dump} was not a Hash") unless advisory.is_a?(Hash) new( advisory['id'], advisory['title'], advisory['description'], advisory['affected_package'], advisory['vulnerable_versions'], advisory['unaffected_versions'], advisory['patched_versions'], advisory['severity'], advisory['package_manager'], advisory['cve'], advisory['cwe'], advisory['osvdb'], advisory['cvss_v2_vector'], advisory['cvss_v2_score'], advisory['cvss_v3_vector'], advisory['cvss_v3_score'], advisory['disclosed_date'], advisory['created_date'], advisory['last_modified_date'], advisory['credit'], advisory['references'], advisory['source_url'] ) end end
Public Instance Methods
to_json(*args)
click to toggle source
# File lib/yavdb/dtos/advisory.rb, line 97 def to_json(*args) to_map.to_json(*args) end
to_map()
click to toggle source
# File lib/yavdb/dtos/advisory.rb, line 79 def to_map map = {} members.each do |m| if !self[m] || (self[m].is_a?(String) && self[m].empty?) || (self[m].is_a?(Array) && self[m].none?) next elsif self[m].is_a?(Struct) map[m.to_s] = self[m].to_map elsif self[m].is_a?(Array) map[m.to_s] = self[m].sort_by { |c| c.to_s.downcase } else map[m.to_s] = self[m] end end map end
to_yaml(*args)
click to toggle source
# File lib/yavdb/dtos/advisory.rb, line 101 def to_yaml(*args) to_map.to_yaml(*args) end