class Bundler::Audit::Report

Represents the result of a scan.

Attributes

created_at[R]

The time when the report was generated.

@return [Time]

insecure_sources[R]

The insecure sources results.

@return [Array<Results::InsecureSources>]

results[R]

The list of all results.

@return [Array<Results::Result>]

unpatched_gems[R]

The unpatched gems results.

@return [Array<Results::UnpatchedGems>]

version[R]

The version of ‘bundler-audit` which created the report object.

@return [String]

Public Class Methods

new(results=[]) click to toggle source

Initializes the report.

@param [#each] results

# File lib/bundler/audit/report.rb, line 45
def initialize(results=[])
  @version    = VERSION
  @created_at = Time.now

  @results = []
  @insecure_sources = []
  @unpatched_gems = []

  results.each { |result| self << result }
end

Public Instance Methods

<<(result) click to toggle source

Appends a result to the report.

@param [InsecureSource, UnpatchedGem] result

# File lib/bundler/audit/report.rb, line 74
def <<(result)
  @results << result

  case result
  when Results::InsecureSource
    @insecure_sources << result
  when Results::UnpatchedGem
    @unpatched_gems << result
  end

  return self
end
advisories() click to toggle source

@return [Array<Advisory>]

# File lib/bundler/audit/report.rb, line 112
def advisories
  @unpatched_gems.map(&:advisory)
end
each(&block) click to toggle source

Enumerates over the results.

@yield [result]

@yieldparam [Results::InsecureSource, Results::UnpatchedGem] result

@return [Enumerator]

# File lib/bundler/audit/report.rb, line 65
def each(&block)
  @results.each(&block)
end
each_advisory() { |advisory| ... } click to toggle source

@yield [advisory]

@yieldparam [Advisory] advisory

@return [Enumerator]

# File lib/bundler/audit/report.rb, line 103
def each_advisory
  return enum_for(__method__) unless block_given?

  @unpatched_gems.each { |result| yield result.advisory }
end
each_vulnerable_gem() { |gem| ... } click to toggle source

@yield [gem]

@yieldparam [Gem::Specification]

@return [Enumerator]

# File lib/bundler/audit/report.rb, line 123
def each_vulnerable_gem
  return enum_for(__method__) unless block_given?

  @unpatched_gems.each { |result| yield result.gem }
end
to_h() click to toggle source

@return [Hash{Symbol => Object}]

# File lib/bundler/audit/report.rb, line 139
def to_h
  {
    version:    @version,
    created_at: @created_at,
    results:    @results.map(&:to_h)
  }
end
vulnerable?() click to toggle source

Determines if there were vulnerabilities found.

@return [Boolean]

# File lib/bundler/audit/report.rb, line 92
def vulnerable?
  !@results.empty?
end
vulnerable_gems() click to toggle source

@return [Array<Gem::Specification>]

# File lib/bundler/audit/report.rb, line 132
def vulnerable_gems
  @unpatched_gems.map(&:gem)
end