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 override some methods, or implement 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:
-
‘#initialize`
-
‘#started`
-
‘#file_started`
-
‘#file_finished`
-
‘#file_started`
-
‘#file_finished`
-
‘#finished`
Attributes
@api public
@!attribute [r] output
@return [IO]
the IO object passed to `#initialize`
@see initialize
Public Class Methods
@api public
@param output [IO]
`$stdout` or opened file
# File lib/rubocop/formatter/base_formatter.rb, line 60 def initialize(output) @output = output end
Public Instance Methods
@api public
Invoked at the end of inspecting each files.
@param file [String]
the file path
@param offences [Array(Rubocop::Cop::Offence
)]
all detected offences for the file
@return [void]
# File lib/rubocop/formatter/base_formatter.rb, line 102 def file_finished(file, offences) end
@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 86 def file_started(file, options) end
@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 115 def finished(inspected_files) end
@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 72 def started(target_files) end