class Railroader::Report

Generates a report based on the Tracker and the results of Tracker#run_checks. Be sure to run_checks before generating a report.

Constants

VALID_FORMATS

Attributes

tracker[R]

Public Class Methods

new(app_tree, tracker) click to toggle source
# File lib/railroader/report.rb, line 11
def initialize app_tree, tracker
  @app_tree = app_tree
  @tracker = tracker
end

Public Instance Methods

format(format) click to toggle source
# File lib/railroader/report.rb, line 16
def format format
  reporter = case format
  when :to_codeclimate
    require_report 'codeclimate'
    Railroader::Report::CodeClimate
  when :to_csv
    require_report 'csv'
    Railroader::Report::CSV
  when :to_html
    require_report 'html'
    Railroader::Report::HTML
  when :to_json
    return self.to_json
  when :to_tabs
    require_report 'tabs'
    Railroader::Report::Tabs
  when :to_hash
    require_report 'hash'
    Railroader::Report::Hash
  when :to_markdown
    return self.to_markdown
  when :to_plain, :to_text, :to_s
    return self.to_plain
  when :to_table
    return self.to_table
  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) click to toggle source
# File lib/railroader/report.rb, line 85
def generate reporter
  reporter.new(@app_tree, @tracker).generate_report
end
method_missing(method, *args) click to toggle source
Calls superclass method
# File lib/railroader/report.rb, line 50
def method_missing method, *args
  if VALID_FORMATS.include? method
    format method
  else
    super
  end
end
require_report(type) click to toggle source
# File lib/railroader/report.rb, line 58
def require_report type
  require "railroader/report/report_#{type}"
end
to_json() click to toggle source
# File lib/railroader/report.rb, line 62
def to_json
  require_report 'json'
  generate Railroader::Report::JSON
end
to_markdown() click to toggle source
# File lib/railroader/report.rb, line 72
def to_markdown
  require_report 'markdown'
  generate Railroader::Report::Markdown
end
to_plain()
Alias for: to_text
to_s()
Alias for: to_text
to_table() click to toggle source
# File lib/railroader/report.rb, line 67
def to_table
  require_report 'table'
  generate Railroader::Report::Table
end
to_text() click to toggle source
# File lib/railroader/report.rb, line 77
def to_text
  require_report 'text'
  generate Railroader::Report::Text
end
Also aliased as: to_plain, to_s