Revision history for Commandable
0.14 2024-09-07
[CHANGES]
* Support discovering global options as attributes on package scalar
variables in the SubAttributes finder
0.13 2024-09-01
[CHANGES]
* Added `->add_global_options` method to support global options
* Support `=u` (unsigned) and `=f` (float) option types as well as
arbitrary regexp match validation
[BUGFIXES]
* Ensure that hyphens are converted to underscores when setting
default values for options
* Ensure that mode=bool options always have a defined value, even if
false
0.12 2024-08-21
[CHANGES]
* Moved `->parse_invocation` out of Command into Finder
* Optional additional help text generated by the package that
implements a given command
* Use `meta` instead of `no strict refs` hackery
* Avoid Test::NoWarnings
0.11 2023-06-08
[CHANGES]
* Added `$finder->find_and_invoke_list` convenience
* Print information about `[no-]` prefix for negatable options in
`help` output
* Optionally require that options all come before non-option
arguments
* Optionally allow bundling of single-letter boolean options
* Convert hyphens in option names to underscores when inserting their
value into the options hash
* Support integer-type checking in options
* Added various docs
[BUGFIXES]
* Ensure that `$cinv->putback_tokens` escapes quotes
0.10 2023-04-29
[CHANGES]
* Add more types of option - negatable, incrementable, multi-value
(much thanks to ilmari)
* Use trailing `=` to indicate option names with values; to match
Getopt::Long
* Swap all unit tests from `Test::More` to `Test2::V0`
0.09 2022-12-04
[CHANGES]
* Added Commandable::Finder::MethodAttributes for handling commands
provided by an object instance by capturing the instance itself in
the code refs
0.08 2022-07-13
[CHANGES]
* Allow "slurpy" arguments
* Added ->configure method to Finder, adding configuration options
* Optionally permit multiple command invocations in one line
[BUGFIXES]
* Ensure the ->code field of Command instances is set by all Finder
subclasses
0.07 2022-04-25
[CHANGES]
* Initial version of Commandable::Output API, an interface for user
programs to customise the way output is displayed
* Ensure that the 'help' builtin command uses Commandable::Output for
all its printing
* Convert underscores to hyphens in command names for
Commandable::Finder::SubAttributes
* More documentation on how to use Commandable::Finder::Packages
0.06 2021-11-03
[CHANGES]
* Initial support for declaring named options to commands
* Also parse out commandline options
* Include options in `help` output
0.05 2021-10-10
[CHANGES]
* Added Commandable::Finder::SubAttributes
* Document the Commandable::Command result structure
* Initial support for declaring positional arguments to commands
* Assist with parsing command arguments out of invocation instances
* Provide automatic built-in `help` command
* Added some convenient wrappers for commandline scripts:
+ Commandable::Finder::SubAttributes->new_for_main
+ Commandable::Finder->find_and_invoke_ARGV
0.04 2020-01-20 18:51:50
[CHANGES]
* Renamed $inv->remaining to ->peek_remaining
* Added Commandable::Finder::Packages
0.03 2018-10-16 17:22:16
[CHANGES]
* Added ->new_from_tokens
0.02 2018-07-29 23:39:17
[CHANGES]
* Added ->putback_tokens
[BUGFIXES]
* Make sure that "multiple" "quotes" are parsed correctly
0.01 2018-06-07 13:10:15
Initial version with just Commandable::Invocation