Cri
News¶ ↑
2.15.9¶ ↑
Fixes:
-
Fixed bug which could cause options from one command appear in other commands (#101, #102)
2.15.8¶ ↑
Fixes:
-
Don’t explicitly set default values for options (#99)
This release reverts a backwards-incompatible change introduced in 2.15.7.
To illustrate this, compare the behavior of the following command in recent versions of Cri:
option :f, :force, 'use force', argument: :forbidden run do |opts, args, cmd| puts "Options = #{opts.inspect}" puts "Force? #{opts[:force]}" puts "Option given? #{opts.key?(:force)}" end
In Cri
2.15.6, the default is not set in the options hash, so the value is nil
and #key?
returns false:
% ./run Options = {} Force? nil Option given? false
This behavior was inconsistent with what was documented: flag options were (and still are) documented to default to false
rather than nil
.
In Cri
2.15.7, the default value is false
, and explicitly set in the options hash (#key?
returns true
):
% ./run Options = {:force=>false} Force? false Option given? true
This change made it impossible to detect options that were not explicitly specified, because the behavior of #key?
also changed.
In Cri
2.15.8, the default value is also false
(as in 2.15.7), but not explicitly set in the options hash (#key?
returns false
, as in 2.15.6):
% ./run Options = {} Force? false Option given? false
This backwards-incompatible change was not intentional. To fix issue #94, a change in behavior was needed, but this change also affected other, previously-undefined behavior. The new behavior in 2.15.8 should fix the bug fixed in 2.15.7 (#94, #96), without causing the problems introduced in that version.
2.15.7¶ ↑
Fixes:
-
Options with a forbidden argument now default to false, rather than nil (#94, #96)
2.15.6¶ ↑
Fixes:
-
Fixed problem with help header not being shown if the summary is missing (#93)
2.15.5¶ ↑
Fixes:
-
Restored compatibility with Ruby 2.3. (#91)
2.15.4¶ ↑
Fixes:
-
Removed dependency on
colored
, which restores functionality to gems thatcolored
breaks (e.g.awesome_print
) (#89, #90)
2.15.3¶ ↑
Fixes:
-
Made
ArgumentList#each
callable without a block, in which case it returns anEnumerator
(mimickingArray
) (#87, #88)
2.15.2¶ ↑
Fixes:
-
Fixed option propagation for two levels or more (#85, #86)
2.15.1¶ ↑
Fixes:
-
Made -h/–help not fail when parameters are defined for the command that -h/–help is called on (#76, #78)
Enhancements:
-
Made
#option
raise an error when unrecognised parameters are passed to it (#77) [Marc-André Lafortune]
2.15.0¶ ↑
Features:
-
Added support for parameter transformation (#72)
2.14.0¶ ↑
Features:
-
Added
Cri::Command.load_file
2.13.0¶ ↑
Features:
-
Added support for explicitly specifying zero parameters using
#no_params
(#71)
2.12.0¶ ↑
Features:
-
Added support for parameter naming and validation (#70)
2.11.0¶ ↑
Features:
-
Added support for transforming option values (#68)
2.10.1¶ ↑
Fixes:
-
Restored Ruby 2.1 compatibility (for now)
2.10.0¶ ↑
Features:
-
Added support for skipping option parsing (#62) [Tim Sharpe]
This release drops support for Ruby 2.1, which is no longer supported.
2.9.1¶ ↑
Fixes:
-
Made default values be always returned, even when not explicitly specified (#57, #58)
2.9.0¶ ↑
Features:
-
Allowed specifying default option value (#55)
Enhancements:
-
Added support for specifying values for combined options (#56)
2.8.0¶ ↑
Features:
-
Allowed passing
hard_exit: false
toCommand#run
to preventSystemExit
(#51) -
Allowed specifying the default subcommand (#54)
2.7.1¶ ↑
Fixes:
-
Fixed some grammatical mistakes
2.7.0¶ ↑
Features:
-
Added support for hidden options (#43, #44) [Bart Mesuere]
Enhancements:
-
Added option values to help output (#37, #40, #41)
-
Made option descriptions wrap (#36, #45) [Bart Mesuere]
2.6.1¶ ↑
-
Disable ANSI color codes when not supported (#31, #32)
2.6.0¶ ↑
-
Added support for multi-valued options (#29) [Toon Willems]
2.5.0¶ ↑
-
Made the default help command handle subcommands (#27)
-
Added
#raw
method to argument arrays, returning all arguments including--
(#22)
2.4.1¶ ↑
-
Fixed ordering of option groups on Ruby 1.8.x (#14, #15)
-
Fixed ordering of commands when –verbose is passed (#16, #18)
2.4.0¶ ↑
-
Allowed either short or long option to be, eh, optional (#9, #10) [Ken Coar]
-
Fixed wrap-and-indent behavior (#12) [Ken Coar]
-
Moved version information into
cri/version
2.3.0¶ ↑
-
Added colors (#1)
-
Added support for marking commands as hidden
2.2.1¶ ↑
-
Made command help sort subcommands
2.2.0¶ ↑
-
Allowed commands with subcommands to have a run block
2.1.0¶ ↑
-
Added support for runners
-
Split up local/global command options
2.0.2¶ ↑
-
Added command filename to stack traces
2.0.1¶ ↑
-
Sorted ambiguous command names
-
Restored compatibility with Ruby 1.8.x
2.0.0¶ ↑
-
Added DSL
-
Added support for nested commands
1.0.1¶ ↑
-
Made gem actually include code. D'oh.
1.0.0¶ ↑
-
Initial release!