NAME
App::LDAP::Role::Command - make a class act as a command
SYNOPSIS
package App::LDAP::Command::YourCommand;
use Moose;
with 'App::LDAP::Role::Command';
has foo => (
is => "rw",
isa => "Str",
);
around prepare => sub {
my $orig = shift;
my $self = shift;
# hook some actions
$self->$orig(@_);
};
sub run {
my $self = shift;
# do something
}
package main;
App::LDAP::Command::YourCommand->new_with_options()->prepare()->new();
DESCRIPTION
This role should be included in any module aimed at being a handler in App::LDAP. It mixs the MooseX::Getopt and App::LDAP::Role and defines the wrappers to Namespace::Dispatch. That is, a command can declare the acceptable options as describing in MooseX::Getopt, invoking helpers from App::LDAP::Role, and dispatching like 'use Namespace::Dispatch'.
METHODS
prepare()
the instance method invoked before running.
$class->new_with_options()->prepare()->run()
this method is designed to be hooked with 'around' in Moose and just returns the instance itself here.
dispatch()
the wrapper of Namespace::Dispatch::dispatch()
$class->dispatch(@consequences)
has_leaf()
the wrapper of Namespace::Dispatch::has_leaf()
$class->has_leaf('name');
leaves
the wrapper of Namespace::Dispatch::leaves()
$submodules = $class->leaves();
encrypt($plain)
given a plain text password, the helper returns an encrypted one.
$hashed = encrypt($plain);
new_password()
read and confirm the new password from terminal. die if failing to confirm.
$plain = new_password();