extract DynamicCommand into separate method so it's easier to override and provide your own command class.
alias --help to help on subcommands

When the --help option is present it will change the args array to
include the help command.
Enforce code coverage minimums
Add RuboCop
Avoid rescuing the Exception class
Prefer loop to literal true in a condition
Use %r for regular expressions matching more than 1 '/' character.
Correct RuboCop offences
revising branch to also inlude the short option

Now the -h and --help enact the same functionality as if help was called
on the subcommand.
remove stray whitespace
Merge pull request #383 from developingchris/alias_help_option_to_help

alias --help to help on subcommands
Update invocation.rb

when calling invoke with a bad name, raise "Missing Thor class for invoke #{name}"
Merge pull request #358 from apotonick/dynamic_command

Simple Override Of DynamicCommand
Push conditionals into set_color method.

Calling #set_color required the client code to check the argument and
 #can_display_colors?. Pushing these checks into #set_color makes it much
easier to reuse this method.

This means that #set_color will now behave differently on TTY and non-TTY
terminals, so the #tty? method of $stdout has been stubbed in the
Thor::Shell::Color specs to always return true.
Push user input into a Thor::LineEditor module.

This paves the way for using Readline.

Since Readline needs to display its own prompt (for history navigation etc.)
the #ask method can no longer use the #say method, so the code for adding
colours and padding has been extracted into #prepare_message
Use Readline when it's available.
Replace line editor conditional with polymorphism.

This refactoring paves the way for adding more advanced Readline
functionality, like tab completion and selective addition to history.

Thanks to Tom Lea (@cwninja) for pairing on the tests for this.
Pass #ask options on to LineEditor.readline

This will allow for various editor-level customisations based on the
options, and for the set of #ask options to be expanded to include options
that specifically effect the line editor.
Support Readline history.

* By default, the response to any #ask call is added to the history.
* Pass `:add_to_history => false` to #ask to avoid adding to history.
* #yes?, #no?, and #file_collision? have `:add_to_history => false` by
  default.
Support Readline tab completion.

When the input is restricted by the :limited_to option, support tab
completion for the options.