Class: Aireview::CLI

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

Overview

rubocop:disable Metrics/ClassLength

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv, out:, err:, env: ENV) ⇒ CLI

Returns a new instance of CLI.



11
12
13
14
15
16
17
18
19
20
# File 'lib/aireview/cli.rb', line 11

def initialize(argv, out:, err:, env: ENV)
  @argv = argv.dup
  @env = env
  @out = out
  @err = err
  @run_id = SecureRandom.hex(4)
  @logger = Logger.new(err)
  @logger.level = Logger::INFO
  @logger.formatter = proc { |severity, _, _, message| "[#{severity.downcase}] [run=#{@run_id}] #{message}\n" }
end

Class Method Details

.start(argv, out: $stdout, err: $stderr, env: ENV) ⇒ Object



7
8
9
# File 'lib/aireview/cli.rb', line 7

def self.start(argv, out: $stdout, err: $stderr, env: ENV)
  new(argv, out: out, err: err, env: env).start
end

Instance Method Details

#start ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/aireview/cli.rb', line 22

def start
  command = @argv.shift

  case command
  when 'review'
    run_review(@argv)
  when 'models'
    run_models(@argv)
  when '--help', '-h', nil
    @out.puts(help)
    0
  else
    @err.puts("Unknown command: #{command}")
    @err.puts(help)
    1
  end
rescue Aireview::HelpRequested
  0
rescue Aireview::Error => e
  @err.puts("Error: #{e.message}")
  1
end