Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

moosex::app::cmd(3pm) [debian man page]

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. perl v5.14.2 2012-02-29 MooseX::App::Cmd(3pm)

Check Out this Related Man Page

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

NAME
App::Cmd::Setup - helper for setting up App::Cmd classes VERSION
version 0.318 OVERVIEW
App::Cmd::Setup is a helper library, used to set up base classes that will be used as part of an App::Cmd program. For the most part you should refer to the tutorial for how you should use this library. This class is useful in three scenarios: when writing your App::Cmd subclass Instead of writing: package MyApp; use base 'App::Cmd'; ...you can write: package MyApp; use App::Cmd::Setup -app; The benefits of doing this are mostly minor, and relate to sanity-checking your class. The significant benefit is that this form allows you to specify plugins, as in: package MyApp; use App::Cmd::Setup -app => { plugins => [ 'Prompt' ] }; Plugins are described in App::Cmd::Tutorial and App::Cmd::Plugin. when writing abstract base classes for commands That is: when you write a subclass of App::Cmd::Command that is intended for other commands to use as their base class, you should use App::Cmd::Setup. For example, if you want all the commands in MyApp to inherit from MyApp::Command, you may want to write that package like this: package MyApp::Command; use App::Cmd::Setup -command; Do not confuse this with the way you will write specific commands: package MyApp::Command::mycmd; use MyApp -command; Again, this form mostly performs some validation and setup behind the scenes for you. You can use "base" if you prefer. when writing App::Cmd plugins App::Cmd::Plugin is a mechanism that allows an App::Cmd class to inject code into all its command classes, providing them with utility routines. To write a plugin, you must use App::Cmd::Setup. As seen above, you must also use App::Cmd::Setup to set up your App::Cmd subclass if you wish to consume plugins. For more information on writing plugins, see App::Cmd::Manual and App::Cmd::Plugin. AUTHOR
Ricardo Signes <rjbs@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Ricardo Signes. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-05-05 App::Cmd::Setup(3pm)
Man Page