Name
Class::Usul::Options - Command line processing
Synopsis
use Class::Usul::Types qw( Str );
use Moo;
use Class::Usul::Options;
option 'my_attr' => is => 'ro', isa => 'Str',
documentation => 'This appears in the option usage output',
format => 's', short => 'a';
# OR
# Causes Getopt::Long:Descriptive::Usage to produce it's new default output
use Class::Usul::Options 'usage_conf' => {
highlight => 'none', option_type => 'verbose', tabstop => 8 };
# OR
# Causes Getopt::Long:Descriptive::Usage to produce it's old default output
use Class::Usul::Options 'usage_conf' => {
highlight => 'none', option_type => 'none', tabstop => 8 };
Description
This is an extended clone of MooX::Options but is closer to MooseX::Getopt::Dashes
Configuration and Environment
The option function accepts the following attributes in addition to those already supported by has
autosplit-
If set split the option value using this string. Automatically creates a list of values
config-
A hash reference passed as the third element in the list of tuples which forms the second argument to the describe options function
For example;
option 'my_attr' => is => 'ro', isa => 'Str', config => { hidden => 1 }, documentation => 'This appears in the option usage output', format => 's', short => 'a';would prevent the option from appearing in the usage text
doc-
Alias for
documentation. Used to describe the attribute in the usage output format-
Format of the parameters, same as Getopt::Long::Descriptive
i : integer i@: array of integer s : string s@: array of string s%: hash of string f : float valueBy default, it's a boolean value.
json-
Boolean which if true means that the argument to the option is in JSON format and will be decoded as such
negateable-
Applies only to boolean types. Means you can use
--nooption-nameto explicitly indicate false order-
Specifies the order in which usage options appear. Attributes with no
ordervalue are alpha sorted repeatable-
Boolean which if true means that the option can appear multiple times on the command line
short-
A single character that can be used as a short option, e.g.
-sinstead of the longer--long-option
Defines no attributes
Subroutines/Methods
default_options_config
Returns a list of keys and values. These are the defaults for the configuration options listed in "import"
import
Injects the option function into the caller
Accepts the following configuration options;
getopf_conf-
An array reference of options passed to Getopt::Long::Configure, defaults to an empty list
prefer_commandline-
A boolean which defaults to true. Prefer the command line values
protect_argv-
A boolean which defaults to true. Localises the
@ARGVvariable before any processing takes place. Means that@ARGVwill contain all of the passed command line arguments show_defaults-
A boolean which defaults to false. If true the default values are added to use options usage text output
skip_options-
An array reference which defaults to an empty list. List of options to ignore when processing the attributes passed to the
optionsubroutine usage_conf-
By default an empty hash reference. Attributes can be any of;
highlight-
Defaults to
boldwhich causes the option argument types to be displayed in a bold font. Set tononeto turn off highlighting option_type-
One of;
none,short, orverbose. Determines the amount of option type information displayed by the option_text method. Defaults toshort tabstop-
Defaults to 3. The number of spaces to expand the leading tab in the usage string
width-
The total line width available for displaying usage text, defaults to 78
usage_opt-
The usage option string passed as the first argument to the describe options function. Defaulted in "default_options_config" to
Usage: %c %o [method]
Diagnostics
None
Dependencies
Incompatibilities
There are no known incompatibilities in this module
Bugs and Limitations
There are no known bugs in this module. Please report problems to http://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-Usul. Patches are welcome
Acknowledgements
Larry Wall - For the Perl programming language
Author
Peter Flanigan, <pjfl@cpan.org>
License and Copyright
Copyright (c) 2018 Peter Flanigan. All rights reserved
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic
This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE