Releases: davetron5000/gli
v2.8.0
- Fixes #154 courtesy @tokengeek and [@jonhl] allowing
--help
to work as one would expect with subcommands.
v2.7.0
- Can now re-open commands later on, which can allow
commands_from
extensions. See #152 (which fixes #144 more or less). Thanks @jonhnl for the fix! - When a custom
on_error
block evaluates to false, andGLI_DEBUG
is set, GLI will output a message explaining that custom error handling has been skipped. See #151 - When a user requests help via
--help
on the command line, the exception used to make that work will not cause theon_error
block to be called. See #150
v2.6.2
- When the
pre
block returns a falsey value, it now does so via a special-purpose exception and also provides a message that the preconditions failed (see #146) - Previously, doing
app --help command
would executecommand
. Now, it acts the same asapp help command
, i.e. gets help for that command (see #149)
v2.6.1
v2.6.0
--version
now just shows the version, courtesy [@brianknight10](see [138],[143])- Synopsis is now more honest - doesn't show
[command options]
if there aren't any, courtesy [@calestar](see [147]) - A falsey exit from
pre
will now cause the app to exit nonzero (or with an exception ifGLI_DEBUG
is set), (see 146) - Support for terminal detection on solaris (see 129)
Biggest change is:
Redesign of how subcommands are handled to enable each subcommand to have its own space of arguments and options.
To enable this, you must subcommand_option_handling :normal
subcommand_option_handling :normal
This is inserted into new applications, but isn't the default for backwards compatibility.
Before
Subcommands can't use flags or switches the parent uses:
command :tasks do |c|
c.flag :long
c.command :list do |list|
c.flag :long # <---- runtime error
c.action do |*|
end
end
end
Subcommands can't use a flag/switch with the same name as another subcommand with the same parent:
command :tasks do |c|
c.command :list do |list|
c.flag :long
c.action do |*|
end
end
c.command :new do |new|
c.flag :long # <----- runtime error
c.action do |*|
end
end
end
After
Each subcommand has its own "flagspace":
command :tasks do |c|
c.flag :long
c.command :list do |list|
c.flag :long
c.action do |*|
end
end
c.command :new do |new|
c.flag :long # <----- runtime error
c.action do |*|
end
end
end
You might do this:
> my_app tasks --long given-to-command list --long given-to-list-subcommand
> my_app tasks --long given-to-command new --long given-to-list-subcommand
The reason for an RC is that it required a fair amount of re-working of the code, so I want to be sure nothings subtle was broken.
Old behavior is the default: https://github.com/davetron5000/gli/blob/fully-nested-subcommands/lib/gli/app.rb#L262
v2.6.0.rc1
Redesign of how subcommands are handled to enable each subcommand to have its own space of arguments and options.
To enable this, you must subcommand_option_handling :normal
subcommand_option_handling :normal
This is inserted into new applications, but isn't the default for backwards compatibility.
Before
Subcommands can't use flags or switches the parent uses:
command :tasks do |c|
c.flag :long
c.command :list do |list|
c.flag :long # <---- runtime error
c.action do |*|
end
end
end
Subcommands can't use a flag/switch with the same name as another subcommand with the same parent:
command :tasks do |c|
c.command :list do |list|
c.flag :long
c.action do |*|
end
end
c.command :new do |new|
c.flag :long # <----- runtime error
c.action do |*|
end
end
end
After
Each subcommand has its own "flagspace":
command :tasks do |c|
c.flag :long
c.command :list do |list|
c.flag :long
c.action do |*|
end
end
c.command :new do |new|
c.flag :long # <----- runtime error
c.action do |*|
end
end
end
You might do this:
> my_app tasks --long given-to-command list --long given-to-list-subcommand
> my_app tasks --long given-to-command new --long given-to-list-subcommand
The reason for an RC is that it required a fair amount of re-working of the code, so I want to be sure nothings subtle was broken.
Old behavior is the default: https://github.com/davetron5000/gli/blob/fully-nested-subcommands/lib/gli/app.rb#L262