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