Mouse::Exporter.3pm

Langue: en

Autres versions - même langue

Version: 2010-05-08 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Mouse::Exporter - make an import() and unimport() just like Mouse.pm

VERSION

This document describes Mouse version 0.58

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.

METHODS

setup_import_methods( ARGS )

build_import_methods( ARGS ) -> (\&import, \&unimport)

SEE ALSO

Moose::Exporter