Class: Tailor::Reporter

Inherits:
Object
  • Object
show all
Defined in:
lib/tailor/reporter.rb

Overview

Objects of this type are responsible for sending the right data to report formatters.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*formats) ⇒ Reporter

For each in formats, it creates a new Tailor::Formatter::#{formatter.capitalize} object and adds it to @formatters.

Parameters:

  • formats (Array)

    A list of formatters to use for generating reports.



13
14
15
16
17
18
19
20
# File 'lib/tailor/reporter.rb', line 13

def initialize(*formats)
  @formatters = []

  formats.flatten.each do |formatter|
    require_relative "formatters/#{formatter}"
    @formatters << eval("Tailor::Formatters::#{formatter.capitalize}.new")
  end
end

Instance Attribute Details

#formattersObject (readonly)

Returns the value of attribute formatters.



6
7
8
# File 'lib/tailor/reporter.rb', line 6

def formatters
  @formatters
end

Instance Method Details

#file_report(file_problems, label) ⇒ Object

Sends the data to each @formatters to generate the report of problems for the file that was just critiqued. A problem is in the format:

{ 'path/to/file.rb' => [Problem1, Problem2, etc.]}

…where Problem1 and Problem2 are of type Problem.

Parameters:

  • file_problems (Hash)
  • label (Symbol, String)

    The label of the file_set that defines the problems in file_problems.



32
33
34
35
36
# File 'lib/tailor/reporter.rb', line 32

def file_report(file_problems, label)
  @formatters.each do |formatter|
    formatter.file_report(file_problems, label)
  end
end

#summary_report(all_problems) ⇒ Object

Sends the data to each @formatters to generate the reports of problems for all files that were just critiqued.

Parameters:

  • all_problems (Hash)


42
43
44
45
46
# File 'lib/tailor/reporter.rb', line 42

def summary_report(all_problems)
  @formatters.each do |formatter|
    formatter.summary_report(all_problems)
  end
end