Class: Rigor::CLI::BaselineCommand

Inherits:
Object
  • Object
show all
Defined in:
lib/rigor/cli/baseline_command.rb

Overview

ADR-22 Slice 1 — ‘rigor baseline generate` subcommands. Backed by `Rigor::Analysis::Baseline`. Future slices extend the subcommand surface with `dump`, `drift`, `prune`, `regenerate`.

Initial subcommand: ‘generate`.

rigor baseline generate              # default: rule-ID rows
rigor baseline generate --match-mode message
rigor baseline generate --force      # overwrite existing
rigor baseline generate --output=PATH

Constant Summary collapse

EXIT_USAGE =

rubocop:disable Metrics/ClassLength

64
DEFAULT_BASELINE_PATH =
".rigor-baseline.yml"
SUBCOMMANDS =
%w[generate dump drift prune].freeze

Instance Method Summary collapse

Constructor Details

#initialize(argv:, out: $stdout, err: $stderr) ⇒ BaselineCommand

Returns a new instance of BaselineCommand.



29
30
31
32
33
# File 'lib/rigor/cli/baseline_command.rb', line 29

def initialize(argv:, out: $stdout, err: $stderr)
  @argv = argv
  @out = out
  @err = err
end

Instance Method Details

#runObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/rigor/cli/baseline_command.rb', line 35

def run
  subcommand = @argv.shift
  case subcommand
  when nil, "help", "-h", "--help"
    @out.puts(help)
    0
  when "generate" then run_generate
  when "dump" then run_dump
  when "drift" then run_drift
  when "prune" then run_prune
  else
    @err.puts("Unknown baseline subcommand: #{subcommand.inspect}")
    @err.puts(help)
    EXIT_USAGE
  end
rescue OptionParser::ParseError => e
  @err.puts(e.message)
  EXIT_USAGE
end