Class: RuboCop::Formatter::FuubarStyleFormatter
- Inherits:
-
ClangStyleFormatter
- Object
- BaseFormatter
- SimpleTextFormatter
- ClangStyleFormatter
- RuboCop::Formatter::FuubarStyleFormatter
- Defined in:
- lib/rubocop/formatter/fuubar_style_formatter.rb
Overview
This formatter displays a progress bar and shows details of offenses as soon as they are detected. This is inspired by the Fuubar formatter for RSpec by Jeff Kreeftmeijer. https://github.com/jeffkreeftmeijer/fuubar
Constant Summary collapse
- RESET_SEQUENCE =
"\e[0m"
Constants inherited from SimpleTextFormatter
SimpleTextFormatter::COLOR_FOR_SEVERITY
Instance Attribute Summary
Attributes inherited from BaseFormatter
Instance Method Summary collapse
- #count_stats(offenses) ⇒ Object
- #file_finished(file, offenses) ⇒ Object
- #progressbar_color ⇒ Object
- #started(target_files) ⇒ Object
- #with_color ⇒ Object
Methods inherited from ClangStyleFormatter
Methods inherited from SimpleTextFormatter
#finished, #report_file, #report_summary
Methods included from Colorizable
Methods included from PathUtil
hidden?, issue_deprecation_warning, match_path?, relative_path
Methods included from TextUtil
Methods inherited from BaseFormatter
#file_started, #finished, #initialize
Constructor Details
This class inherits a constructor from RuboCop::Formatter::BaseFormatter
Instance Method Details
#count_stats(offenses) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/rubocop/formatter/fuubar_style_formatter.rb', line 45 def count_stats(offenses) super offenses = offenses.reject(&:corrected?) return if offenses.empty? offenses << @severest_offense if @severest_offense @severest_offense = offenses.max_by(&:severity) end |
#file_finished(file, offenses) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rubocop/formatter/fuubar_style_formatter.rb', line 34 def file_finished(file, offenses) count_stats(offenses) unless offenses.empty? @progressbar.clear report_file(file, offenses) end with_color { @progressbar.increment } end |
#progressbar_color ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/rubocop/formatter/fuubar_style_formatter.rb', line 65 def if @severest_offense COLOR_FOR_SEVERITY[@severest_offense.severity.name] else :green end end |
#started(target_files) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rubocop/formatter/fuubar_style_formatter.rb', line 14 def started(target_files) super @severest_offense = nil file_phrase = target_files.count == 1 ? 'file' : 'files' # 185/407 files |====== 45 ======> | ETA: 00:00:04 # %c / %C | %w > %i | %e = " %c/%C #{file_phrase} |%w>%i| %e " @progressbar = ProgressBar.create( output: output, total: target_files.count, format: , autostart: false ) with_color { @progressbar.start } end |
#with_color ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/rubocop/formatter/fuubar_style_formatter.rb', line 55 def with_color if rainbow.enabled output.write colorize('', ).chomp(RESET_SEQUENCE) yield output.write RESET_SEQUENCE else yield end end |