Class: DoSnapshot::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/do_snapshot/runner.rb

Overview

CLI Runner

Instance Method Summary collapse

Constructor Details

#initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel) ⇒ Runner

Returns a new instance of Runner.



8
9
10
11
12
13
14
# File 'lib/do_snapshot/runner.rb', line 8

def initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
  @argv = argv
  @stdin = stdin
  @stdout = stdout
  @stderr = stderr
  @kernel = kernel
end

Instance Method Details

#execute!Object

rubocop:disable Metrics/MethodLength



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/do_snapshot/runner.rb', line 16

def execute! # rubocop:disable Metrics/MethodLength
  exit_code = begin
    run_cli
  rescue DoSnapshot::NoTokenError, DoSnapshot::NoKeysError => _
    do_nothing_on_shown_error
  rescue StandardError => e
    display_backtrace_otherwise(e)
  rescue SystemExit => e
    e.status
  ensure
    clean_before_exit
  end

  @kernel.exit(exit_code)
end