Scroll to navigation

MooseX::App::Cmd(3pm) User Contributed Perl Documentation MooseX::App::Cmd(3pm)

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 => (
        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;
    }

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

    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.
2012-02-29 perl v5.14.2