Class: Rails::Guarddog::Reporters::ConsoleReporter

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/guarddog/reporters/console_reporter.rb

Instance Method Summary collapse

Constructor Details

#initialize(findings) ⇒ ConsoleReporter

Returns a new instance of ConsoleReporter.



5
6
7
# File 'lib/rails/guarddog/reporters/console_reporter.rb', line 5

def initialize(findings)
  @findings = findings
end

Instance Method Details

#reportObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rails/guarddog/reporters/console_reporter.rb', line 9

def report
  puts "\n" + "="*60
  puts "Rails GuardDog Security Report".center(60)
  puts "="*60 + "\n"

  if @findings.empty?
    puts "✓ No security issues found!".green
    return
  end

  @findings.group_by(&:severity).each do |severity, findings|
    puts "\n[#{severity.upcase}] (#{findings.count})"
    findings.each do |finding|
      puts "  #{finding.category}#{finding.message}"
      puts "    #{finding.file}:#{finding.line}"
      puts "    Fix: #{finding.remediation}\n"
    end
  end

  puts "\n" + "="*60
  puts "Total findings: #{@findings.count}"
  puts "="*60 + "\n"
end