Class: Brakeman::Report
- Inherits:
-
Object
- Object
- Brakeman::Report
- Defined in:
- lib/brakeman/report.rb,
lib/brakeman/report/renderer.rb
Overview
Generates a report based on the Tracker and the results of Tracker#run_checks. Be sure to run_checks
before generating a report.
Defined Under Namespace
Classes: Base, CSV, CodeClimate, HTML, Hash, JSON, Markdown, Renderer, Table, Tabs
Constant Summary collapse
- VALID_FORMATS =
[:to_html, :to_pdf, :to_csv, :to_json, :to_tabs, :to_hash, :to_s, :to_markdown, :to_codeclimate]
Instance Attribute Summary collapse
-
#tracker ⇒ Object
readonly
Returns the value of attribute tracker.
Instance Method Summary collapse
- #format(format) ⇒ Object
- #generate(reporter) ⇒ Object
-
#initialize(app_tree, tracker) ⇒ Report
constructor
A new instance of Report.
- #method_missing(method, *args) ⇒ Object
- #require_report(type) ⇒ Object
- #to_json ⇒ Object
- #to_markdown ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(app_tree, tracker) ⇒ Report
Returns a new instance of Report.
11 12 13 14 |
# File 'lib/brakeman/report.rb', line 11 def initialize app_tree, tracker @app_tree = app_tree @tracker = tracker end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/brakeman/report.rb', line 48 def method_missing method, *args if VALID_FORMATS.include? method format method else super end end |
Instance Attribute Details
#tracker ⇒ Object (readonly)
Returns the value of attribute tracker.
7 8 9 |
# File 'lib/brakeman/report.rb', line 7 def tracker @tracker end |
Instance Method Details
#format(format) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/brakeman/report.rb', line 16 def format format reporter = case format when :to_codeclimate require_report 'codeclimate' Brakeman::Report::CodeClimate when :to_csv require_report 'csv' Brakeman::Report::CSV when :to_html require_report 'html' Brakeman::Report::HTML when :to_json return self.to_json when :to_tabs require_report 'tabs' Brakeman::Report::Tabs when :to_hash require_report 'hash' Brakeman::Report::Hash when :to_markdown return self.to_markdown when :to_s return self.to_s when :to_pdf raise "PDF output is not yet supported." else raise "Invalid format: #{format}. Should be one of #{VALID_FORMATS.inspect}" end generate(reporter) end |
#generate(reporter) ⇒ Object
75 76 77 |
# File 'lib/brakeman/report.rb', line 75 def generate reporter reporter.new(@app_tree, @tracker).generate_report end |
#require_report(type) ⇒ Object
56 57 58 |
# File 'lib/brakeman/report.rb', line 56 def require_report type require "brakeman/report/report_#{type}" end |
#to_json ⇒ Object
60 61 62 63 |
# File 'lib/brakeman/report.rb', line 60 def to_json require_report 'json' generate Brakeman::Report::JSON end |