NAME
Test::Builder2::Mouse::Exporter - make an import() and unimport() just like Test/Builder2/Mouse.pm
VERSION
This document describes Mouse version 0.64
SYNOPSIS
package MyApp::Mouse;
use Test::Builder2::Mouse ();
use Test::Builder2::Mouse::Exporter;
Test::Builder2::Mouse::Exporter->setup_import_methods(
as_is => [ 'has_rw', 'other_sugar', \&Some::Random::thing ],
also => 'Test::Builder2::Mouse',
);
sub has_rw {
my $meta = caller->meta;
my ( $name, %options ) = @_;
$meta->add_attribute(
$name,
is => 'rw',
%options,
);
}
# then later ...
package MyApp::User;
use MyApp::Mouse;
has 'name';
has_rw 'size';
thing;
no MyApp::Mouse;
DESCRIPTION
This module encapsulates the exporting of sugar functions in a Test/Builder2/Mouse.pm
-like manner. It does this by building custom import
, unimport
methods for your module, based on a spec you provide.
Note that Test::Builder2::Mouse::Exporter
does not provide the with_meta
option, but you can easily get the metaclass by caller->meta
as "SYNOPSIS" shows.