class MoneyTracking::Cli::Runner
Attributes
argv[R]
kernel[R]
stderr[R]
stdin[R]
stdout[R]
Public Class Methods
new(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
click to toggle source
# File lib/money_tracking/cli/runner.rb, line 6 def initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel) @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel end
Public Instance Methods
execute!()
click to toggle source
# File lib/money_tracking/cli/runner.rb, line 10 def execute! kernel.exit(run_cli { App.start(argv) }) end
Private Instance Methods
reset_streams()
click to toggle source
# File lib/money_tracking/cli/runner.rb, line 24 def reset_streams $stderr = STDERR $stdin = STDIN $stdout = STDOUT end
run_cli() { || ... }
click to toggle source
# File lib/money_tracking/cli/runner.rb, line 30 def run_cli setup_streams yield 0 rescue Cli::Error => e e.render 1 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 reset_streams end
setup_streams()
click to toggle source
# File lib/money_tracking/cli/runner.rb, line 18 def setup_streams $stderr = stderr $stdin = stdin $stdout = stdout end