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.
568 569 570 571 |
# File 'lib/toys/cli.rb', line 568 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.
580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 |
# File 'lib/toys/cli.rb', line 580 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 |