module Fontist::ThorExt::Start
Sources:
Configures Thor to behave more like a typical CLI
, with better help and error handling.
-
Passing -h or –help to a command will show help for that command.
-
Unrecognized options will be treated as errors.
-
Error messages will be printed in red to stderr, without stack trace.
-
Errors
will cause Thor to exit with a non-zero status.
To take advantage of this behavior, your CLI
should subclass Thor and extend this module.
class CLI < Thor extend ThorExt::Start end
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