MooseX::POE::Role - Eventful roles


MooseX-POE documentation Contained in the MooseX-POE distribution.

Index


Code Index:

NAME

Top

MooseX::POE::Role - Eventful roles

VERSION

Top

version 0.214

SYNOPSIS

Top

    package Counter;
    use MooseX::POE::Role;

    ...

    package RealCounter;

    with qw(Counter);

DESCRIPTION

Top

This is what MooseX::POE is to Moose but with Moose::Role.

METHODS

Top

event $name $subref

Create an event handler named $name.

KEYWORDS

Top

AUTHORS

Top

COPYRIGHT AND LICENSE

Top


MooseX-POE documentation Contained in the MooseX-POE distribution.

package MooseX::POE::Role;
BEGIN {
  $MooseX::POE::Role::VERSION = '0.214';
}
# ABSTRACT: Eventful roles
use MooseX::POE::Meta::Role;

use Moose::Exporter;

my ( $import, $unimport, $init_meta ) = Moose::Exporter->setup_import_methods(
    with_caller    => [qw(event)],
    also           => 'Moose::Role',
    install        => [qw(import unimport)],
    role_metaroles => {
        role => ['MooseX::POE::Meta::Role'],
    },
);

sub init_meta {
    my ( $class, %args ) = @_;

    my $for = $args{for_class};
    eval qq{package $for; use POE; };

    Moose::Role->init_meta( for_class => $for );

    goto $init_meta;
}

sub event {
    my ( $caller, $name, $method ) = @_;
    my $class = Moose::Meta::Class->initialize($caller);
    $class->add_state_method( $name => $method );
}


1;



__END__