MooX::Cmd::Role(3pm)

πŸ“¦
version 0.017 Β· 5 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing

πŸ’– MooX::Cmd::Role β€” the perl manual page, but make it cute πŸ’–

okay bestie, so you're reading MooX::Cmd::Role(3pm), which lives in the User Contributed Perl Documentation section. buckle up, it's giving "tiny role, huge power". πŸŽ€


✨ NAME ✨

MooX::Cmd::Role β€” MooX cli app commands do this. that's it. that's the whole name. iconic behavior, honestly. πŸ’…


🌸 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. fr fr, that's literally the whole pitch β€” it's the role you slap onto your command classes so they can do the whole MooX::Cmd thing. ✨


πŸ‘‘ 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". yep, it defaults, you don't gotta set it unless you're feeling spicy

command_execute_return_method_name

STRING β€” and I quote the original here, bestie: I have no clue what that is good for ... 😭 even the docs are like "idk girl". keeping it 100.

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. the main character method, honestly πŸ‘‘

execute_return

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


Copyright 2012-2013 Torsten Raudssus, Copyright 2013-2017 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.


heads up bestie: that license bit is the real deal β€” GPL or Artistic, your pick. don't be weird about it. πŸ’–

okay that's the whole page, and a lil sign-off for the road: this manual page is from perl v5.36.0, dated 2022-11-19, and it's the MooX::Cmd::Role(3pm) page. slay, go build some cli commands. πŸ¦‹πŸ’…βœ¨

πŸ“¦ where this page comes from