MouseX::App::Cmd - Mashes up MouseX::Getopt and App::Cmd
version 0.30
package YourApp::Cmd; use Mouse; extends qw(MouseX::App::Cmd); package YourApp::Cmd::Command::blort; use Mouse; extends qw(MouseX::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 MouseX::Getopt.
Use it like App::Cmd advises (especially see App::Cmd::Tutorial), swapping App::Cmd::Command for MouseX::App::Cmd::Command.
Then you can write your moose commands as Mouse classes, with MouseX::Getopt defining the options for you instead of opt_spec returning a Getopt::Long::Descriptive spec.
opt_spec
After calling new this method is automatically run, setting underlying App::Cmd attributes as per its documentation.
new
יובל קוג'מן (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.
Mark Gardner <mjgardner@cpan.org>
Mark Gardner <gardnerm@gsicommerce.com>
Karen Etheridge <ether@cpan.org>
Yuval Kogman <nothingmuch@woobling.org>
Graham Knop <haarg@haarg.org>
Daisuke Maki <dmaki@cpan.org>
Offer Kaye <offer.kaye@gmail.com>
vovkasm <vovkasm@gmail.com>
Ken Crowell <oeuftete@gmail.com>
brunov <vecchi.b@gmail.com>
Mark Gardner <mjg+github@phoenixtrap.com>
Guillermo Roditi <groditi@gmail.com>
Dann <techmemo@gmail.com>
Michael Joyce <ubermichael@gmail.com>
To install MouseX::App::Cmd, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MouseX::App::Cmd
CPAN shell
perl -MCPAN -e shell install MouseX::App::Cmd
For more information on module installation, please visit the detailed CPAN module installation guide.