Class: MetzScan::CLI

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

Constant Summary collapse

SUBCOMMAND_SUMMARIES =
{
  "rules" => "List all Metz/* cops with their one-line rationale",
  "explain" => "Print full metadata for a single Metz cop",
  "scan" => "Run rubocop-metz against PATH and render a report",
  "report" => "Re-render an existing rubocop-metz JSON report",
  "project-analyzers" => "List project analyzers with status and default-output eligibility"
}.freeze
SUBCOMMANDS =
SUBCOMMAND_SUMMARIES.keys.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stdout: $stdout, stderr: $stderr) ⇒ CLI

Returns a new instance of CLI.



23
24
25
26
# File 'lib/metz_scan/cli.rb', line 23

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

Class Method Details

.start(argv = ARGV, stdout: $stdout, stderr: $stderr) ⇒ Object



19
20
21
# File 'lib/metz_scan/cli.rb', line 19

def self.start(argv = ARGV, stdout: $stdout, stderr: $stderr)
  new(stdout: stdout, stderr: stderr).run(argv)
end

Instance Method Details

#run(argv) ⇒ Object



28
29
30
31
32
33
# File 'lib/metz_scan/cli.rb', line 28

def run(argv)
  args = argv.dup
  return show_help_and_fail if args.empty?

  handle_global_flag(args.first) || dispatch(args)
end