Revision history for Perinci-Sub-GetArgs-Agv
0.47 2014-07-23 (SHARYANTO)
- No functional changes.
- Adjust to Getopt::Long::Util 0.77.
0.46 2014-07-23 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Adjust to Getopt::Long::Util 0.46 (option ordering).
- Change 'common_opts' argument form so it is now the same as
Perinci::CmdLine's.
0.45 2014-07-22 (SHARYANTO)
- Don't attempt parsing argv as json/yaml if array of simple scalar.
0.44 2014-07-18 (SHARYANTO)
- These changes are to aid completion.
- gen_getopt_long_spec_from_meta(): Provide 'func.opts_by_arg',
'func.opts_by_common', 'func.common_opts' & 'func.func_opts'.
- get_args_from_argv(): Return gen_getopt_long_spec_from_meta result in
func.gen_getopt_long_spec_result to avoid caller having to call
gen_getopt_long_spec_from_meta() separately.
[INCOMPATIBLE CHANGES]
- gen_getopt_long_spec_from_meta(): func.*opts are now prefixed with
--/-.
0.43 2014-07-18 (SHARYANTO)
- gen_getopt_long_spec_from_meta(): Add 'parsed' key (result from
Getopt::Long::Util's parse_getopt_long_opt_spec()). Add 'alias_for'
key for alias options to trace back original option. Both to aid
help/usage generation.
- [Bugfix] Some bug fixes.
0.42 2014-07-18 (SHARYANTO)
- gen_getopt_long_spec_from_meta(): Add 'orig_spec' to common_opts'
alias specmeta to be able to trace back the original key (to aid
help/usage generation).
0.41 2014-07-18 (SHARYANTO)
- gen_getopt_long_spec_from_meta(): Add is_alias to alias specmeta, add
{,non}code_aliases to non-alias specmeta (to aid help/usage
generation).
0.40 2014-07-18 (SHARYANTO)
- No functional changes.
- Revert previous decision: Deliberately not including YAML::Syck &
JSON as prereq to reduce deps. It complicates testing [CT].
0.39 2014-07-17 (SHARYANTO)
- To reduce dependencies, deliberately no longer lists JSON and
YAML::Syck as dependencies. These modules are only required when
'per_arg_json' and 'per_arg_yaml' are enabled.
[BUG FIXES]
- Only try to parse positional command-line arguments as JSON/YAML when
per_arg_yaml/per_arg_json is true.
0.38 2014-07-12 (SHARYANTO)
- Add option: 'args', to set initial value for the resulting arguments.
0.37 2014-07-09 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Changes the interface and the parsing rules slightly. Since I want to
remove --action and the subtle difference of 'extra_getopts_before'
and 'extra_getopts_after'. Now we avoid clashes between common
options like '--help' and function arguments of the same name (they
will be renamed to '--help-arg', or '--help-arg2' and so on upon
clash). Clash will also be avoided between '--ARGNAME' and
'--ARGNAME-json' should that happen.
[REMOVED FEATURES]
- Remove 'check_required_args' option. Now function still returns 200
on missing args. Missing args are already reported in the result
metadata ('func.missing_args').
- Remove 'extra_getopts_before' and 'extra_getopts_after', replace it
with 'common_opts' (a hash of Getopt::Long specification name and
handlers).
[ENHANCEMENTS]
- Refactor the code that generates Getopt::Long spec to its own
function: gen_getopt_long_spec_from_meta() so it's reusable from e.g.
routine that wants to generate usage/help message.
0.36 2014-07-08 (SHARYANTO)
- Adjust to Perinci::Sub::GetArgs::Argv 0.14.
- Add 'meta_is_normalized' option.
0.35 2014-07-04 (SHARYANTO)
- Still call cmdline_on_getopt routine when value for function argument
is specified through command-line argument instead of command-line
options. This is usually desired to "catch" all command-line
options/arguments (process them through cmdline_on_getopt routine).
Note that the Rinci::function standard hasn't said anything about
this yet.
- Provide 'opt' for cmdline_on_getopt routine to let it know whether it
is specified as an option (where 'opt' will contain the option name,
e.g. '--foo 1' will have 'opt' set to 'foo') or whether it is
specified in the command-line argument (where 'opt' will be set to
undef).
0.34 2014-04-16 (SHARYANTO)
- Return status 502 when encountering a cmdline_alias where its code
has been converted into 'CODE'. This will allow modules like
Perinci::CmdLine or App::riap to retry sending argv to the server
instead of parsing argv on the client side.
- Replace each() with for() [ref:
http://blogs.perl.org/users/rurban/2014/04/do-not-use-each.html].
0.33 2014-04-10 (SHARYANTO)
- No functional changes.
- Replace Data::Clone with Function::Fallback::CoreOrPP.
0.32 2014-03-15 (SHARYANTO)
- No functional changes. Rebuild to fix POD documentation (function
argument documentation was broken in Perinci-To-POD < 0.42).
0.31 2014-01-21 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Interpret true return value from on_missing_required_args hook to
mean avoid complaining about missing argument, so we allow argument
to be missing in the final result.
0.30 2013-12-25 (SHARYANTO)
- Respect 'cmdline_on_getopt' argument spec (Rinci 1.1.43).
0.29 2013-11-13 (SHARYANTO)
[BUG FIXES]
- To be consistent, 'argv' elements should also be emptied for
positional arguments.
0.28 2013-11-08 (SHARYANTO)
[BUG FIXES]
- on_missing_required_args hook should also be called for required
args, not all missing args.
0.27 2013-10-28 (SHARYANTO)
- Rename result metadata 'func.has_missing_arg' (bool) to
'func.missing_arg' (str) to report the name of the missing argument.
0.26 2013-10-28 (SHARYANTO)
- When check_required_args=0 and there is missing argument, provide
hint to user via 'func.has_missing_arg' result metadata.
0.25 2013-10-15 (SHARYANTO)
- Use Data::Clean::FromJSON so that Data::Sah-generated validator code
in wrapped functions doesn't choke with JSON::{PP,XS}::Boolean
objects.
0.24 2013-09-20 (SHARYANTO)
- cmdline_alias for bool doesn't get --noX ("alias!") if it specifies
code, which makes more sense.
0.23 2013-08-15 (SHARYANTO)
- Perform JSON/YAML parsing for command-line arguments too.
0.22 2013-04-05 (SHARYANTO)
- Add no_getopt_compat Getopt::Long::Configure to disregard "+" as
option starter.
0.21 2012-08-09 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Enable Getopt::Long's configuration 'bundling' to get more
traditional behavior (e.g. -Ifoo instead of having to use -I foo).
This means you no longer can specify -I=foo since it means -I =foo
now.
[FIXES]
- Fix handling of cmdline_aliases (didn't use the same option handler
routine).
0.20 2012-08-08 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Change behavior of parsing arguments with type of array-of-scalar,
now uses --foo 1 --foo 2 a la Getopt::Long.
[ETC]
- Remove user documentation, this module will be "internal" and used
from Perinci::CmdLine.
0.19 2012-07-23 (SHARYANTO)
- These changes are made to support `cmdline_src` arg spec key (Rinci
1.1.21+). Actual implementation will be done by Perinci::CmdLine.
- Add 'on_missing_required_args' option.
- Add 'allow_extra_elems' option.
0.18 2012-07-19 (SHARYANTO)
- Add 'per_arg_json' option.
- Also try JSON parsing as well as YAML on non-scalar arguments.
0.17 2012-04-02 (SHARYANTO)
[INCOMPATIBLE CHANGE]
- Change 'extra_getopts_before' and 'extra_getopts_after' from hash to
array, because ordering matters in GetOptions().
0.16 2012-04-02 (SHARYANTO)
[INCOMPATIBLE CHANGE]
- Change $_pa_skip_check_required_args internal flag with
'check_required_args' option.
- Replace extra_getopts with extra_getopts_before and
extra_getopts_after.
0.15 2012-03-29 (SHARYANTO)
[FIXES]
- extra_getopts --foo=s was cut and became --foo.
0.14 2012-03-23 (SHARYANTO)
[INCOMPATIBLE CHANGES, REMOVED FEATURES]
- Argument with underscore (foo_bar) is only represented with --foo-bar
and no longer with --foo_bar, because having both disrupts
Getopt::Long's ability to autocomplete (e.g. --foo).
0.13 2012-03-23 (SHARYANTO)
- Support arguments with dot (e.g. 'with.dot') using --with-dot syntax.
0.12 2012-02-28 (SHARYANTO)
- Parse arg's 'cmdline_aliases'.
0.11 2012-02-22 (SHARYANTO)
- Rename distribution from Sub-Spec-GetArgs-Argv to
Perinci-Sub-GetArgs-Agv.
0.10 2012-01-27 (SHARYANTO)
- No functional changes. Build fix.
0.09 2012-01-27 (SHARYANTO)
- No functional changes. Upgrade to Data-Sah-0.02.
0.08 2012-01-20 (SHARYANTO)
- No functional changes. Mark deprecation.
0.07 2011-11-23 (SHARYANTO)
- No functional changes. Replace Data::Sah::Util with Data::Sah.
0.06 2011-08-31 (SHARYANTO)
- No functional changes. Updated because _parse_schema() is moved from
Sub::Spec::Utils to Data::Sah::Util.
0.05 2011-08-25 (SHARYANTO)
- No functional changes. Update to Sub::Spec 0.15.
0.04 2011-08-03 (SHARYANTO)
[NEW FEATURES]
- Added per_arg_yaml option to allow specifying YAML for scalar types,
e.g. --name-yaml '~'.
0.03 2011-07-29 (SHARYANTO)
[FIXES]
- (build) Add missing test dep: Data::Clone.
[ETC]
- Internally now uses Sub::Spec::GetArgs::Array to process arg_pos and
arg_greedy arg type clauses.
0.02 2011-07-26 (SHARYANTO)
- No functional changes. Allow Sub::Spec::CmdLine to access an internal
variable (yeah, some coupling still exists). Localize
Getopt::Long::Configure() effect.
0.01 2011-07-26 (SHARYANTO)
- First release, spun off from Sub::Spec::CmdLine.