MooseX::App::Cmd - Mashes up MooseX::Getopt and App::Cmd |
MooseX::App::Cmd - Mashes up MooseX::Getopt and App::Cmd
version 0.32
package YourApp::Cmd; use Moose;
extends qw(MooseX::App::Cmd);
package YourApp::Cmd::Command::blort; use Moose;
extends qw(MooseX::App::Cmd::Command);
has blortex => ( traits => [qw(Getopt)], isa => 'Bool', is => 'rw', cmd_aliases => 'X', documentation => 'use the blortext algorithm', );
has recheck => ( traits => [qw(Getopt)], isa => 'Bool', is => 'rw', cmd_aliases => 'r', documentation => 'recheck all results', );
sub execute { my ( $self, $opt, $args ) = @_;
# you may ignore $opt, it's in the attributes anyway
my $result = $self->blortex ? blortex() : blort();
recheck($result) if $self->recheck;
print $result; }
This module marries App::Cmd with MooseX::Getopt.
Use it like App::Cmd advises (especially see App::Cmd::Tutorial), swapping App::Cmd::Command for MooseX::App::Cmd::Command.
Then you can write your moose commands as Moose classes, with
MooseX::Getopt
defining the options for you instead of opt_spec
returning a
Getopt::Long::Descriptive spec.
After calling new
this method is automatically run, setting underlying
App::Cmd attributes as per its documentation.
Bugs may be submitted through the RT bug tracker (or bug-MooseX-App-Cmd@rt.cpan.org).
There is also a mailing list available for users of this distribution, at http://lists.perl.org/list/moose.html.
There is also an irc channel available for users of this distribution, at irc://irc.perl.org/#moose.
יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
This software is copyright (c) 2008 by Infinity Interactive, Inc..
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
MooseX::App::Cmd - Mashes up MooseX::Getopt and App::Cmd |