Class: PersonalWordlistCLI::Runner

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

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Runner.



3
4
5
# File 'lib/personal_wordlist_cli/runner.rb', line 3

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



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/personal_wordlist_cli/runner.rb', line 7

def execute!
  exit_code = begin
                $stderr = @stderr
                $stdin  = @stdin
                $stdout = @stdout

                PersonalWordlistCLI::Commands.start(ARGV)
                0
              rescue StandardError => e
                b = e.backtrace
                @stderr.puts("#{b.shift}: #{e.message} (#{e.class})")
                @stderr.puts(b.map{|s| "\tfrom #{s}"}.join("\n"))
                1
              rescue SystemExit => e
                e.status
              ensure
                $stderr = STDERR
                $stdin  = STDIN
                $stdout = STDOUT
              end
  @kernel.exit(exit_code)
end