NAME
Mouse::Exporter - make an import() and unimport() just like Mouse.pm
VERSION
This document describes Mouse version 0.50_01
SYNOPSIS
package
MyApp::Mouse;
use
Mouse ();
use
Mouse::Exporter;
Mouse::Exporter->setup_import_methods(
as_is
=> [
'has_rw'
,
'other_sugar'
, \
&Some::Random::thing
],
also
=>
'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 Mouse.pm
-like manner. It does this by building custom import
, unimport
methods for your module, based on a spec you provide.
Note that Mouse::Exporter
does not provide the with_meta
option, but you can easily get the metaclass by caller->meta
as "SYNOPSIS" shows.