class Quality::Tools::Rubocop

Adds ‘rubocop’ tool support to quality gem

Public Class Methods

count_rubocop_violations(line) click to toggle source
# File lib/quality/tools/rubocop.rb, line 26
def self.count_rubocop_violations(line)
  if line =~ /^.* file[s|] inspected, (.*) offence[s|] detected$/
    0
  elsif line =~ /^warning: .*/
    # don't count internal rubocop errors/warnings
    0
  else
    1
  end
end

Public Instance Methods

quality_rubocop() click to toggle source
# File lib/quality/tools/rubocop.rb, line 18
def quality_rubocop
  ratchet_quality_cmd('rubocop',
                      gives_error_code_on_violations: true,
                      args: rubocop_args) do |line|
    self.class.count_rubocop_violations(line)
  end
end
rubocop_args() click to toggle source
# File lib/quality/tools/rubocop.rb, line 7
def rubocop_args
  [
    '--force-exclusion',
    '--require rubocop-minitest',
    '--require rubocop-rake',
    '--require rubocop-rspec',
    '--format emacs',
    *ruby_files,
  ].join(' ')
end