class RuboCop::Formatter::BaseFormatter

Abstract base class for formatter, implements all public API methods.

## Creating Custom Formatter

You can create a custom formatter by subclassing ‘RuboCop::Formatter::BaseFormatter` and overriding some methods or by implementing all the methods by duck typing.

## Using Custom Formatter in Command Line

You can tell RuboCop to use your custom formatter with a combination of ‘–format` and `–require` option. For example, when you have defined `MyCustomFormatter` in `./path/to/my_custom_formatter.rb`, you would type this command:

rubocop --require ./path/to/my_custom_formatter --format MyCustomFormatter

Note: The path passed to ‘–require` is directly passed to `Kernel.require`. If your custom formatter file is not in `$LOAD_PATH`, you need to specify the path as relative path prefixed with `./` explicitly or absolute path.

## Method Invocation Order

For example, when RuboCop inspects 2 files, the invocation order should be like this:

Attributes

options[R]

@api public

@!attribute [r] options

@return [Hash]

output[R]

@api public

@!attribute [r] output

@return [IO]

the IO object passed to `#initialize`

@see initialize

Public Class Methods

new(output, options = {}) click to toggle source

@api public

@param output [IO]

`$stdout` or opened file
# File lib/rubocop/formatter/base_formatter.rb, line 63
def initialize(output, options = {})
  @output = output
  @options = options
end

Public Instance Methods

file_finished(file, offenses) click to toggle source

@api public

Invoked at the end of inspecting each files.

@param file [String]

the file path

@param offenses [Array(RuboCop::Cop::Offense)]

all detected offenses for the file

@return [void]

@see RuboCop::Cop::Offense

# File lib/rubocop/formatter/base_formatter.rb, line 104
def file_finished(file, offenses); end
file_started(file, options) click to toggle source

@api public

Invoked at the beginning of inspecting each files.

@param file [String]

the file path

@param options [Hash]

file specific information, currently this is always empty.

@return [void]

# File lib/rubocop/formatter/base_formatter.rb, line 89
def file_started(file, options); end
finished(inspected_files) click to toggle source

@api public

Invoked after all files are inspected or interrupted by user.

@param inspected_files [Array(String)]

the inspected file paths.
This would be same as `target_files` passed to `#started`
unless RuboCop is interrupted by user.

@return [void]

# File lib/rubocop/formatter/base_formatter.rb, line 116
def finished(inspected_files); end
started(target_files) click to toggle source

@api public

Invoked once before any files are inspected.

@param target_files [Array(String)]

all target file paths to be inspected

@return [void]

# File lib/rubocop/formatter/base_formatter.rb, line 76
def started(target_files); end