Class: Package::Audit::Formatter::Vulnerability

Inherits:
Base
  • Object
show all
Defined in:
lib/package/audit/formatter/vulnerability.rb

Instance Method Summary collapse

Constructor Details

#initialize(vulnerabilities) ⇒ Vulnerability

Returns a new instance of Vulnerability.



9
10
11
12
# File 'lib/package/audit/formatter/vulnerability.rb', line 9

def initialize(vulnerabilities)
  super()
  @vulnerabilities = vulnerabilities
end

Instance Method Details

#formatObject

rubocop:disable Metrics/MethodLength



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/package/audit/formatter/vulnerability.rb', line 14

def format # rubocop:disable Metrics/MethodLength
  formatted = @vulnerabilities.map do |vulnerability|
    case vulnerability
    when Enum::VulnerabilityType::UNKNOWN, Enum::VulnerabilityType::CRITICAL, Enum::VulnerabilityType::HIGH
      Util::BashColor.red(vulnerability)
    when Enum::VulnerabilityType::MEDIUM, Enum::VulnerabilityType::MODERATE
      Util::BashColor.orange(vulnerability)
    when Enum::VulnerabilityType::LOW
      Util::BashColor.yellow(vulnerability)
    else
      vulnerability
    end
  end

  formatted.group_by(&:itself).map { |k, v| "#{k}(#{v.length})" }.join(' ')
end