Class: RuboCop::Formatter::SimpleTextFormatter Private

Inherits:
BaseFormatter show all
Includes:
Colorizable, PathUtil
Defined in:
lib/rubocop/formatter/simple_text_formatter.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

A basic formatter that displays only files with offenses. Offenses are displayed at compact form - just the location of the problem and the associated message.

Direct Known Subclasses

ClangStyleFormatter, QuietFormatter

Defined Under Namespace

Classes: Report

Constant Summary collapse

COLOR_FOR_SEVERITY =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

{
  info:       :gray,
  refactor:   :yellow,
  convention: :yellow,
  warning:    :magenta,
  error:      :red,
  fatal:      :red
}.freeze

Constants included from PathUtil

PathUtil::HIDDEN_FILE_PATTERN

Instance Attribute Summary

Attributes inherited from BaseFormatter

#options, #output

Instance Method Summary collapse

Methods included from PathUtil

absolute?, glob?, hidden_dir?, hidden_file?, hidden_file_in_not_hidden_dir?, match_path?, maybe_hidden_file?, relative_path, smart_path

Methods included from Colorizable

#colorize, #rainbow

Methods inherited from BaseFormatter

#file_started, #initialize

Constructor Details

This class inherits a constructor from RuboCop::Formatter::BaseFormatter

Instance Method Details

#file_finished(file, offenses) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



29
30
31
32
33
34
# File 'lib/rubocop/formatter/simple_text_formatter.rb', line 29

def file_finished(file, offenses)
  return if offenses.empty?

  count_stats(offenses)
  report_file(file, offenses)
end

#finished(inspected_files) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



36
37
38
39
40
41
# File 'lib/rubocop/formatter/simple_text_formatter.rb', line 36

def finished(inspected_files)
  report_summary(inspected_files.count,
                 @total_offense_count,
                 @total_correction_count,
                 @total_correctable_count)
end

#report_file(file, offenses) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rubocop/formatter/simple_text_formatter.rb', line 43

def report_file(file, offenses)
  output.puts yellow("== #{smart_path(file)} ==")

  offenses.each do |o|
    output.printf(
      "%<severity>s:%3<line>d:%3<column>d: %<message>s\n",
      severity: colored_severity_code(o),
      line: o.line,
      column: o.real_column,
      message: message(o)
    )
  end
end

#report_summary(file_count, offense_count, correction_count, correctable_count) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/rubocop/formatter/simple_text_formatter.rb', line 57

def report_summary(file_count, offense_count, correction_count, correctable_count)
  report = Report.new(file_count,
                      offense_count,
                      correction_count,
                      correctable_count,
                      rainbow,
                      # :safe_autocorrect is a derived option based on several command-line
                      # arguments - see Rubocop::Options#add_autocorrection_options
                      safe_autocorrect: @options[:safe_autocorrect])

  output.puts
  output.puts report.summary
end

#started(_target_files) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



23
24
25
26
27
# File 'lib/rubocop/formatter/simple_text_formatter.rb', line 23

def started(_target_files)
  @total_offense_count = 0
  @total_correction_count = 0
  @total_correctable_count = 0
end