MooseX::App::Cmd.3pm

Langue: en

Autres versions - même langue

Version: 2009-09-17 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

MooseX::App::Cmd - Mashes up MooseX::Getopt and App::Cmd.

SYNOPSIS

See ``SYNOPSIS'' in App::Cmd.
     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 => (
         isa => "Bool",
         is  => "rw",
         cmd_aliases   => "X",
         documentation => "use the blortext algorithm",
     );
 
     has recheck => (
         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;
     }
 
 

DESCRIPTION

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.

AUTHOR

Yuval Kogman <nothingmuch@woobling.org>

With contributions from:

Guillermo Roditi <groditi@cpan.org>
     Copyright (c) 2007-2008 Infinity Interactive, Yuval Kogman. All rights
     reserved This program is free software; you can redistribute it and/or
     modify it under the same terms as Perl itself.