table of contents
- Tumbleweed 0.10-12.28
- Leap-15.6
MooseX::Role::Cmd::Meta::Attribute::Trait(3) | User Contributed Perl Documentation | MooseX::Role::Cmd::Meta::Attribute::Trait(3) |
NAME¶
MooseX::Role::Cmd::Meta::Attribute::Trait - Optional meta attribute trait for custom option names
SYNOPSIS¶
package MyApp::Cmd::SomeScript; with 'MooseX::Role::Cmd'; has 'basic' => ( isa => 'Str', is => 'rw', ); has 'prefix' => ( traits => [ 'CmdOpt' ], isa => 'Str', is => 'rw', cmdopt_prefix => '-', ); has 'rename' => ( traits => [ 'CmdOpt' ], isa => 'Str', is => 'rw', cmdopt_name => '+alt_name', ); $cmd = MyApp::Cmd::SomeScript->new( basic => 'foo', prefix => 'bar', rename => 'foobar' ); $cmd->run(); # somescript --basic foo -prefix bar +alt_name foobar
DESCRIPTION¶
Provides some extra markup to help MooseX::Role::Cmd decide how to use command line parameters.
ATTRIBUTES¶
cmdopt_prefix¶
Forces the command prefix to be a certain character. This was introduced to allow parameters to be specified as "-param" or "--param"
has_cmdopt_prefix¶
Test for attribute above
cmdopt_name¶
Forces the command options name to be the passed string. This was introduced to allow parameters to have a different name to the attribute.
This option will override the cmdopt_prefix attribute.
has_cmdopt_name¶
Test for attribute above
cmdopt_env¶
This attribute trait can be used to specify an environment variable rather than a command line option.
has 'home_dir' => ( traits => [ 'CmdOpt' ], is => 'rw', isa => 'Str', cmdopt_env => 'APP_HOME', default => '/my/app/home' ); # $ENV{APP_HOME} = /my/app/home
has_cmdopt_env¶
Test for attribute above
BUGS¶
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.
AUTHOR¶
Ian Sillitoe <ian.sillitoe@gmail.com>
SEE ALSO¶
The idea for this code was ripped kicking and screaming from MooseX::Getopt::Meta::Attribute::Trait
COPYRIGHT AND LICENSE¶
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2018-10-09 | perl v5.40.0 |