Skip to content

moose/MooseX-App-Cmd

Repository files navigation

NAME

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

VERSION

version 0.34

SYNOPSIS

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.

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
MooseX::Getopt
MooseX::App::Cmd::Command

SUPPORT

Bugs may be submitted through the RT bug tracker (or [email protected]).

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 #moose on irc.perl.org.

AUTHOR

יובל קוג'מן (Yuval Kogman) <[email protected]>

CONTRIBUTORS

COPYRIGHT AND LICENCE

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.