Meta::Builder is designed to be a generic tool for writing Meta
objects. Unlike specialized tools, Meta::Builder makes no assumptions
about what metrics you will care about. Meta::Builder also mkaes it
simple for others to extend your meta-object based tools by providing
hooks for other packages to add metrics to your meta object.
When testing applications, often you find yourself needing to provide
functionality in your test environment that would usually be provided by
external modules. Rather than munging the %INC by hand to mark these external
modules as loaded, so they are not attempted to be loaded by perl, this module
offers you a very simple way to mark modules as loaded and/or unloaded.
This module marries App::Cmd with MooseX::Getopt.
Use it like App::Cmd advises (especially see App::Cmd::Tutorial),
swapping App::Cmd::Command for MooseX::App::Cmd::Command.
Then you can write your moose commands as moose classes, with
MooseX::Getopt defining the options for you instead of opt_spec
returning a Getopt::Long::Descriptive spec.
MooseX::AuthorizedMethods exports the "authorized" declarator that makes a
verification if the user has the required permissions before the acual
invocation. The default verification method will take the "user" method result
and call "roles" to list the roles given to that user.
The module MooseX::HasDefaults::RO defaults is to ro.
The module MooseX::HasDefaults::RW defaults is to rw.
If you pass a specific value to any has's is, that overrides the default. If
you do not want an accessor, pass is => undef.
Moose type constraints are expected to return true if the value
passes the constraint, and false otherwise; Moo "constraints", on
the other hand, die if validation fails.
This metaclass allows for Moo-style constraints; it will wrap them
and translate their Moo into a dialect Moose understands.
This module is meant to be loaded as a role from Moose-based classes
it will add five methods and four attributes to assist you with the
loading and handling of plugins and extensions for plugins. I
understand that this may pollute your namespace, however I took great
care in using the least ambiguous names possible.
The 'SetOnce' attribute lets your class have attributes that are not lazy and
not set, but that cannot be altered once set. If you try to alter the value
of an attribute with the SetOnce trait, either by accessor or writer, and the
attribute has a value, it will throw an exception.
Perl's filehandles are implemented as a stack of layers, with the bottom-most
usually doing the actual IO and the higher ones doing buffering,
encoding/decoding or transformations. PerlIO::Layers allows you to query the
filehandle's properties concerning there layers.
Proc::SafeExec provides an easy, safe way to execute external programs. It
replaces all of Perl's questionable ways of accomodating this, including
system(), open() with a pipe, exec(), back-ticks, etc. This module will never
automatically invoke /bin/sh. This module is easy enough to use that /bin/sh
should be unnecessary, even for complex pipelines.