NAME
MooseX::App::Meta::Role::Class::Base - Meta class role for application base class
DESCRIPTION
This meta class role will automatically be applied to the application base class. This documentation is only of interest if you intend to write plugins for MooseX-App.
ACCESSORS
app_messageclass
Message class for generating error messages. Defaults to MooseX::App::Message::Block. The default can be overwritten by altering the _build_app_messageclass
method. Defaults to MooseX::App::Message::Block
app_namespace
Usually MooseX::App will take the package name of the base class as the namespace for commands. This namespace can be changed.
app_base
Usually MooseX::App will take the name of the calling wrapper script to construct the programm name in various help messages. This name can be changed via the app_base accessor. Defaults to the base name of $0
app_fuzzy
Boolean flag that controlls if command names and attributes should be matched exactly or fuzzy. Defaults to true.
app_command_name
Coderef attribute that controlls how package names are translated to command names and attributes. Defaults to &MooseX::App::Utils::class_to_command
app_commands
Hashref with command to command class map.
app_strict
Boolean flag that controls if an application with superfluous/unknown positional parameters should terminate with an error message or not. If disabled all extra parameters will be copied to the extra_argv command class attribute.
app_prefer_commandline
By default, arguments passed to new_with_command and new_with_options have a higher priority than the command line options. This boolean flag will give the command line an higher priority.
METHODS
command_register
$self->command_register($command_moniker,$command_class);
Registers an additional command
command_get
my $command_class = $self->command_register($command_moniker);
Returns a command class for the given command moniker
command_class_to_command
my $command_moniker = $meta->command_class_to_command($command_class);
Returns the command moniker for the given command class.
command_message
my $message = $meta->command_message(
header => $header,
type => 'error',
body => $message
);
Generates a message object (using the class from app_messageclass)
command_usage_attributes
my @attributes = $meta->command_usage_attributes($metaclass);
Returns a list of attributes/command options for the given meta class.
command_usage_command
my @messages = $meta->command_usage_command($command_metaclass);
Returns a list of messages containing the documentation for a given command meta class.
command_usage_description
my $message = $meta->command_usage_description($command_metaclass);
Returns a messages with the basic command description.
command_usage_global
my @messages = $meta->command_usage_global();
Returns a list of messages containing the documentation for the application.
command_usage_header
my $message = $meta->command_usage_header();
my $message = $meta->command_usage_header($command_meta_class);
Returns a message containing the basic usage documentation
command_find
my @commands = $meta->command_find($user_command_input);
Returns a list of command names matching the user input
command_candidates
my $commands = $meta->command_candidates($user_command_input);
Returns either a single command or an arrayref of possibly matching commands.
command_proto
my ($result,$errors) = $meta->command_proto($command_meta_class);
Returns all parsed options (as hashref) and erros (as arrayref) for the proto command. Is a wrapper around command_parse_options.
command_args
my ($options,$errors) = $self->command_args($command_meta_class);
Returns all parsed options (as hashref) and erros (as arrayref) for the main command. Is a wrapper around command_parse_options.
command_parse_options
my ($options,$errors) = $self->command_parse_options(\@attribute_metaclasses);
Tries to parse the selected attributes from @ARGV.
command_check_attribute
my ($error) = $self->command_check_attribute($attribute_meta_class,$value);
Checks if a value is valid for the given attribute. Returns a message object if a validation error occurs.
command_type_constraint_description
my ($description) = $self->command_type_constraint_description($type_constraint);
Returns a human-readable type constraint description.
command_scan_namespace
my %namespaces = $self->command_scan_namespace($namespace);
Scans a namespace for command classes. Returns a hash with command names as keys and package names as values.
command_process_attributes
my @attributes = $self->command_process_attributes($metaclass,[qw(option proto)]);
my @attributes = $self->command_process_attributes($metaclass,'parameter');
Returns a list of all attributes with the given type
command_usage_options
my $usage = $self->command_usage_options($metaclass,$headline);
Returns the options usage as a message object
command_usage_parameters
my $usage = $self->command_usage_parameters($metaclass,$headline);
Returns the positional parameters usage as a message object