module Fontist::ThorExt::Start

Sources:

Configures Thor to behave more like a typical CLI, with better help and error handling.

To take advantage of this behavior, your CLI should subclass Thor and extend this module.

class CLI < Thor
  extend ThorExt::Start
end

Start your CLI with:

CLI.start

In tests, prevent Kernel.exit from being called when an error occurs, like this:

CLI.start(args, exit_on_failure: false)

Public Class Methods

extended(base) click to toggle source
Calls superclass method
# File lib/fontist/cli/thor_ext.rb, line 33
def self.extended(base)
  super
  base.check_unknown_options!
end

Public Instance Methods

start(given_args = ARGV, config = {}) click to toggle source
# File lib/fontist/cli/thor_ext.rb, line 38
def start(given_args = ARGV, config = {})
  config[:shell] ||= Thor::Base.shell.new
  handle_help_switches(given_args) do |args|
    dispatch(nil, args, nil, config)
  end
rescue StandardError => e
  handle_exception_on_start(e, config)
end