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.



7
8
9
# File 'lib/do_snapshot/runner.rb', line 7

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

Instance Method Details

#execute!Object

rubocop:disable Metrics/MethodLength



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/do_snapshot/runner.rb', line 11

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