diff --git a/lib/brakeman.rb b/lib/brakeman.rb index 05e8e5840e33b2cf9927c29b106a65f3f5dc481a..7c01b56887edc3f44b84430ef0c36505ac16540d 100644 --- a/lib/brakeman.rb +++ b/lib/brakeman.rb @@ -173,11 +173,13 @@ module Brakeman #Output list of checks (for `-k` option) def self.list_checks require 'brakeman/scanner' + format_length = 30 + $stderr.puts "Available Checks:" - $stderr.puts "-" * 30 - $stderr.puts Checks.checks.map { |c| - c.to_s.match(/^Brakeman::(.*)$/)[1].ljust(27) << c.description - }.sort.join "\n" + $stderr.puts "-" * format_length + Checks.checks.each do |check| + $stderr.printf("%-#{format_length}s%s\n", check.checker_name, check.description) + end end #Installs Rake task for running Brakeman, diff --git a/lib/brakeman/checks/base_check.rb b/lib/brakeman/checks/base_check.rb index 3b6730a0aaa5cf53471d0f7d2cf64cd1924c7056..7c1f5e5a458e7b2a79f038f542bf3be8b4ee9fb9 100644 --- a/lib/brakeman/checks/base_check.rb +++ b/lib/brakeman/checks/base_check.rb @@ -12,6 +12,14 @@ class Brakeman::BaseCheck < Brakeman::SexpProcessor CONFIDENCE = { :high => 0, :med => 1, :low => 2 } Match = Struct.new(:type, :match) + + class << self + attr_accessor :checker_name + + def inherited(subclass) + subclass.checker_name = subclass.to_s.match(/^Brakeman::(.*)$/)[1] + end + end #Initialize Check with Checks. def initialize(app_tree, tracker)