NAME¶
MooX::Cmd::Role - MooX cli app commands do this
VERSION¶
version 0.009
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;
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();
explicitely 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 goood 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}
AUTHOR¶
Torsten Raudssus <torsten@raudss.us>
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2013 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.