Karen Etheridge > MouseX-App-Cmd-0.30 > MouseX::App::Cmd

Download:
MouseX-App-Cmd-0.30.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 0.30   Source  

NAME ^

MouseX::App::Cmd - Mashes up MouseX::Getopt and App::Cmd

VERSION ^

version 0.30

SYNOPSIS ^

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

DESCRIPTION ^

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.

METHODS ^

BUILD

After calling new this method is automatically run, setting underlying App::Cmd attributes as per its documentation.

SEE ALSO ^

App::Cmd
App::Cmd::Tutorial
MouseX::Getopt
MouseX::App::Cmd::Command

AUTHOR ^

יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>

COPYRIGHT AND LICENSE ^

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.

CONTRIBUTORS ^

syntax highlighting: