class Troo::Launcher

Public Class Methods

new(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel) click to toggle source

@param [Array] @param [] @param [] @param [] @param [Kernel] @return [Troo::Launcher]

# File lib/troo/launcher.rb, line 9
def initialize(argv, stdin = STDIN,
                     stdout = STDOUT,
                     stderr = STDERR,
                     kernel = Kernel)
  @argv      = argv
  @stdin     = stdin
  @stdout    = stdout
  @stderr    = stderr
  @kernel    = kernel
  @exit_code = 1
end

Public Instance Methods

execute!() click to toggle source

@return [String, NilClass]

# File lib/troo/launcher.rb, line 22
def execute!
  $stdin, $stdout, $stderr = @stdin, @stdout, @stderr
  pad { Troo::CLI::Main.start(@argv) }
  @exit_code = 0
rescue ConfigurationNotFound
  pad do
    puts "Configuration cannot be found, please run " \
         "`troo wizard` to get started."
  end
rescue ConfigurationAborted
  pad { puts 'Configuration wizard aborted.' }
rescue Redis::CannotConnectError
  pad { puts 'Cannot connect to Redis database.' }
rescue ExpiredAccessToken
  pad do
    puts "Your Trello access token has expired, please run " \
         "`troo wizard` for help, or manually renew."
  end
rescue EndpointNotFound
  pad do
    puts "An unrecoverable error has occurred due to programmer " \
         "error. Please report this issue at:\n\n"                \
         "https://github.com/gavinlaking/troo/issues\n\n"         \
         "Thank you.\n"
  end
ensure
  $stdin, $stdout, $stderr = STDIN, STDOUT, STDERR
  @kernel.exit(@exit_code)
end

Private Instance Methods

pad() { || ... } click to toggle source
# File lib/troo/launcher.rb, line 54
def pad
  puts
  yield
  puts
end