Module: Undercover::CLI

Defined in:
lib/undercover/cli.rb

Constant Summary collapse

WARNINGS_TO_S =

TODO: Report calls >parser< for each file instead of traversing the whole project at first!

{
  stale_coverage: Rainbow('🚨 WARNING: Coverage data is older than your ' \
    'latest changes and results might be incomplete. ' \
    'Re-run tests to update').yellow,
  no_changes: Rainbow('✅ No reportable changes').green
}.freeze

Class Method Summary collapse

Class Method Details

.changeset(opts) ⇒ Object



42
43
44
45
# File 'lib/undercover/cli.rb', line 42

def self.changeset(opts)
  git_dir = File.join(opts.path, opts.git_dir)
  Undercover::Changeset.new(git_dir, opts.compare)
end

.run(args) ⇒ Object

rubocop:disable Metrics/MethodLength, Metrics/AbcSize



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/undercover/cli.rb', line 19

def self.run(args)
  opts = Undercover::Options.new.parse(args)
  syntax_version(opts.syntax_version)
  report = Undercover::Report.new(changeset(opts), opts).build

  error = report.validate(opts.lcov)
  if error
    puts(WARNINGS_TO_S[error])
    return 0 if error == :no_changes
  end

  warnings = report.build_warnings
  puts Undercover::Formatter.new(warnings)
  warnings.any? ? 1 : 0
end

.syntax_version(version) ⇒ Object

rubocop:enable Metrics/MethodLength, Metrics/AbcSize



36
37
38
39
40
# File 'lib/undercover/cli.rb', line 36

def self.syntax_version(version)
  return unless version

  Imagen.parser_version = version
end