class Bundler::Audit::Advisory

def self.load(path)

Other tags:
    Api: - semipublic

Returns:
  • (Advisory) -

Parameters:
  • path (String) --
def self.load(path)
  id   = File.basename(path).chomp('.yml')
  data = File.open(path) do |yaml|
           YAML.safe_load(yaml, permitted_classes: [Date])
         end
  unless data.kind_of?(Hash)
    raise("advisory data in #{path.dump} was not a Hash")
  end
  parse_versions = lambda { |versions|
    Array(versions).map do |version|
      Gem::Requirement.new(*version.split(', '))
    end
  }
  return new(
    path,
    id,
    data['url'],
    data['title'],
    data['date'],
    data['description'],
    data['cvss_v2'],
    data['cvss_v3'],
    data['cve'],
    data['osvdb'],
    data['ghsa'],
    parse_versions[data['unaffected_versions']],
    parse_versions[data['patched_versions']]
  )
end