class Pronto::BundlerAudit::AdvisoryFormatters::BaseAdvisoryFormatter

Pronto::BundlerAudit::AdvisoryFormatters::BaseAdvisoryFormatter is an abstract base class for formatting Bundler::Audit::Advisory objects as a String in the context of the given `gem` (Bundler::LazySpecification).

Public Class Methods

new(gem:, advisory:) click to toggle source

param gem [Bundler::LazySpecification] param advisory [Bundler::Audit::Advisory]

# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 13
def initialize(gem:, advisory:)
  @gem = gem
  @advisory = advisory
end

Public Instance Methods

to_s() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 18
def to_s
  raise NotImplementedError
end

Private Instance Methods

advisory_criticality() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 40
def advisory_criticality
  str = @advisory.criticality.to_s.capitalize
  str = "Unknown" if str.empty?
  str
end
advisory_description() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 32
def advisory_description
  if @advisory.cve
    "CVE-#{@advisory.cve}"
  elsif @advisory.osvdb
    @advisory.osvdb
  end
end
advisory_solution() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 54
def advisory_solution
  if any_patched_versions?
    "Upgrade to #{patched_versions}."
  else
    "Remove or disable this gem until a patch is available!"
  end
end
advisory_title() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 50
def advisory_title
  @advisory.title
end
advisory_url() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 46
def advisory_url
  @advisory.url
end
any_patched_versions?() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 66
def any_patched_versions?
  !@advisory.patched_versions.empty?
end
gem_name() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 24
def gem_name
  @gem.name
end
gem_version() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 28
def gem_version
  @gem.version
end
patched_versions() click to toggle source
# File lib/pronto/bundler_audit/advisory_formatters/base_advisory_formatter.rb, line 62
def patched_versions
  @advisory.patched_versions.join(", ")
end