Class: Toys::CLI::DefaultErrorHandler
- Inherits:
-
Object
- Object
- Toys::CLI::DefaultErrorHandler
- Defined in:
- toys-core/lib/toys/cli.rb
Overview
Defined in the toys-core gem
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.
572 573 574 575 |
# File 'toys-core/lib/toys/cli.rb', line 572 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.
584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 |
# File 'toys-core/lib/toys/cli.rb', line 584 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 |