Class: Toys::CLI::DefaultErrorHandler
- Inherits:
-
Object
- Object
- Toys::CLI::DefaultErrorHandler
- Defined in:
- lib/toys/cli.rb
Overview
A basic error handler that prints out captured errors to a stream or a logger.
Instance Method Summary collapse
-
#call(error) ⇒ Integer
The error handler routine.
-
#initialize(output: $stderr) ⇒ DefaultErrorHandler
constructor
Create an error handler.
Constructor Details
#initialize(output: $stderr) ⇒ DefaultErrorHandler
Create an error handler.
509 510 511 512 |
# File 'lib/toys/cli.rb', line 509 def initialize(output: $stderr) require "toys/utils/terminal" @terminal = Utils::Terminal.new(output: output) end |
Instance Method Details
#call(error) ⇒ Integer
The error handler routine. Prints out the error message and backtrace, and returns the correct result code.
521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 |
# File 'lib/toys/cli.rb', line 521 def call(error) cause = error case error when ContextualError cause = error.cause @terminal.puts(cause_string(cause)) @terminal.puts(context_string(error), :bold) when ::Interrupt @terminal.puts @terminal.puts("INTERRUPTED", :bold) else @terminal.puts(cause_string(error)) end exit_code_for(cause) end |