Provided by: libmoox-cmd-perl_0.015-1_all bug

NAME

       MooX::Cmd::Role - MooX cli app commands do this

SYNOPSIS

   using role and want behavior as MooX::Cmd
         package MyFoo;

         with MooX::Cmd::Role;

         sub _build_command_execute_from_new { 1 }

         package main;

         my $cmd = MyFoo->new_with_cmd;

   using role and don't execute immediately
         package MyFoo;

         with MooX::Cmd::Role;
         use List::MoreUtils qw/ first_idx /;

         sub _build_command_base { "MyFoo::Command" }

         sub _build_command_execute_from_new { 0 }

         sub execute {
             my $self = shift;
             my $chain_idx = first_idx { $self == $_ } @{$self->command_chain};
             my $next_cmd = $self->command_chain->{$chain_idx+1};
             $next_cmd->owner($self);
             $next_cmd->execute;
         }

         package main;

         my $cmd = MyFoo->new_with_cmd;
         $cmd->command_chain->[-1]->run();

   explicit expression of some implicit stuff
         package MyFoo;

         with MooX::Cmd::Role;

         sub _build_command_base { "MyFoo::Command" }

         sub _build_command_execute_method_name { "run" }

         sub _build_command_execute_from_new { 0 }

         package main;

         my $cmd = MyFoo->new_with_cmd;
         $cmd->command_chain->[-1]->run();

DESCRIPTION

       MooX::Cmd::Role is made for modern, flexible Moo style to tailor cli commands.

ATTRIBUTES

   command_args
       ARRAY-REF of args on command line

   command_chain
       ARRAY-REF of commands lead to this instance

   command_chain_end
       COMMAND accesses the finally detected command in chain

   command_name
       ARRAY-REF the name of the command lead to this command

   command_commands
       HASH-REF names of other commands

   command_base
       STRING base of command plugins

   command_execute_method_name
       STRING name of the method to invoke to execute a command, default "execute"

   command_execute_return_method_name
       STRING I have no clue what that is good for ...

   command_creation_method_name
       STRING name of constructor

   command_creation_chain_methods
       ARRAY-REF names of methods to chain for creating object (from
       "command_creation_method_name")

   command_execute_from_new
       BOOL true when constructor shall invoke "command_execute_method_name", false otherwise

METHODS

   new_with_cmd
       initializes by searching command line args for commands and invoke them

   execute_return
       returns the content of $self->{execute_return}

LICENSE AND COPYRIGHT

       Copyright 2012-2013 Torsten Raudssus, Copyright 2013-2015 Jens Rehsack.

       This program is free software; you can redistribute it and/or modify it under the terms of
       either: the GNU General Public License as published by the Free Software Foundation; or
       the Artistic License.

       See <http://dev.perl.org/licenses/> for more information.