Class: MetzScan::Commands::Explain

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

Constant Summary collapse

USAGE =
"Usage: metz-scan explain Metz/CopName"
NON_KNOB_KEYS =
%w[Description VersionAdded StyleGuide Reference].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stdout:, stderr:) ⇒ Explain

Returns a new instance of Explain.



16
17
18
19
# File 'lib/metz_scan/commands/explain.rb', line 16

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

Class Method Details

.run(argv, stdout:, stderr:) ⇒ Object



12
13
14
# File 'lib/metz_scan/commands/explain.rb', line 12

def self.run(argv, stdout:, stderr:)
  new(stdout: stdout, stderr: stderr).run(argv)
end

Instance Method Details

#emit_or_error(cop_name) ⇒ Object



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

def emit_or_error(cop_name)
  cop = lookup_metz_cop(cop_name)
  return unknown_cop_error(cop_name) unless cop

  emit(cop)
  0
end

#run(argv) ⇒ Object



21
22
23
24
25
26
# File 'lib/metz_scan/commands/explain.rb', line 21

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

  emit_or_error(args.first)
end