Module: Satorix::CI::Test::Ruby::Rubocop

Extended by:
Rubocop
Includes:
Shared::Console
Included in:
Rubocop
Defined in:
lib/satorix/CI/test/ruby/rubocop.rb

Instance Method Summary collapse

Methods included from Shared::Console

#colorize, #colors, #humanize_time, #log, #log_bench, #log_command, #log_duration, #log_error, #log_error_and_abort, #log_header, #run_command, #source_env_from

Instance Method Details

#create_rubocop_configObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/satorix/CI/test/ruby/rubocop.rb', line 27

def create_rubocop_config
  if config_exist?
    log 'Using existing .rubocop.yml file from project.'
  else
    log 'A .rubocop.yml file was not found, generating a default configuration file for this project.'
    content = Satorix.rails_app? ? config_content_rails : config_content_default
    save_rubocop_config content
  end
  log 'For more information, please refer to https://www.satorix.com/docs/articles/app_using_ruby_on_rails#rubocop.'
end

#goObject



12
13
14
15
16
17
# File 'lib/satorix/CI/test/ruby/rubocop.rb', line 12

def go
  log_bench('Displaying current Ruby version...') { run_command(%w[ruby -v]) }
  log_bench('Installing Rubocop...') { install_gems }
  log_bench('Configuring Rubocop...') { create_rubocop_config }
  log_bench('Running Rubocop inspection...') { run_scan }
end

#install_gemsObject



20
21
22
23
24
# File 'lib/satorix/CI/test/ruby/rubocop.rb', line 20

def install_gems
  run_command(['gem', 'install', 'rubocop', '--no-document', '--bindir', Satorix.bin_dir])
  run_command(['gem', 'install', 'rubocop-performance', '--no-document', '--bindir', Satorix.bin_dir])
  run_command(['gem', 'install', 'rubocop-rails_config', '--no-document', '--bindir', Satorix.bin_dir]) if Satorix.rails_app?
end

#run_scanObject



39
40
41
42
43
44
# File 'lib/satorix/CI/test/ruby/rubocop.rb', line 39

def run_scan
  command = %w[rubocop --require rubocop-performance --display-cop-names --extra-details --display-style-guide --parallel]
  command.concat(%w[--require rubocop-rails]) if Satorix.rails_app?

  run_command(command)
end