-
-
25 Apr 2012 16:10:05 UTC
- Distribution: MooseX-POE
- Module version: 0.215
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues (13)
- Testers (5702 / 4 / 0)
- Kwalitee
Bus factor: 3- 50.00% Coverage
- License: perl_5
- Activity
24 month- Tools
- Download (31.35KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
and 5 contributors-
Chris Prather
-
Ash Berlin
-
Chris Williams
- Yuval (nothingmuch) Kogman
-
Torsten Raudssus L<http://www.raudssus.de/>
- Dependencies
- Moose
- POE
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- METHODS
- KEYWORDS
- METHODS
- NOTES ON USAGE WITH MooseX::Declare
- SEE ALSO
- AUTHORS
- COPYRIGHT AND LICENSE
NAME
MooseX::POE - The Illicit Love Child of Moose and POE
VERSION
version 0.215
SYNOPSIS
package Counter; use MooseX::POE; has count => ( isa => 'Int', is => 'rw', lazy => 1, default => sub { 0 }, ); sub START { my ($self) = @_; $self->yield('increment'); } event increment => sub { my ($self) = @_; print "Count is now " . $self->count . "\n"; $self->count( $self->count + 1 ); $self->yield('increment') unless $self->count > 3; }; no MooseX::POE; Counter->new(); POE::Kernel->run();
or with MooseX::Declare:
class Counter { use MooseX::POE::SweetArgs qw(event); has count => ( isa => 'Int', is => 'rw', lazy => 1, default => sub { 0 }, ); sub START { my ($self) = @_; $self->yield('increment') } event increment => sub { my ($self) = @_; print "Count is now " . $self->count . "\n"; $self->count( $self->count + 1 ); $self->yield('increment') unless $self->count > 3; } } Counter->new(); POE::Kernel->run();
DESCRIPTION
MooseX::POE is a Moose wrapper around a POE::Session.
METHODS
event $name $subref
Create an event handler named $name.
get_session_id
Get the internal POE Session ID, this is useful to hand to other POE aware functions.
yield
call
delay
alarm
alarm_add
delay_add
alarm_set
alarm_adjust
alarm_remove
alarm_remove_all
delay_set
delay_adjust
A cheap alias for the same POE::Kernel function which will gurantee posting to the object's session.
STARTALL
STOPALL
KEYWORDS
METHODS
Default POE-related methods are provided by MooseX::POE::Meta::Trait::Object which is applied to your base class (which is usually Moose::Object) when you use this module. See that module for the documentation for. Below is a list of methods on that class so you know what to look for:
NOTES ON USAGE WITH MooseX::Declare
MooseX::Declare support is still "experimental". Meaning that I don't use it, I don't have any code that uses it, and thus I can't adequately say that it won't cause monkeys to fly out of any orifices on your body beyond what the tests and the SYNOPSIS cover.
That said there are a few caveats that have turned up during testing.
1. The
method
keyword doesn't seem to work as expected. This is an integration issue that is being resolved but I want to wait for MooseX::Declare to gain some more polish on their slurpy arguments.2. MooseX::POE attempts to re-export Moose, which MooseX::Declare has already exported in a custom fashion. This means that you'll get a keyword clash between the features that MooseX::Declare handles for you and the features that Moose handles. To work around this you'll need to write:
use MooseX::POE qw(event); # or use MooseX::POE::SweetArgs qw(event); # or use MooseX::POE::Role qw(event);
to keep MooseX::POE from exporting the sugar that MooseX::Declare doesn't like. This is fixed in the Git version of MooseX::Declare but that version (as of this writing) is not on the CPAN.
SEE ALSO
AUTHORS
Chris Prather <chris@prather.org>
Ash Berlin <ash@cpan.org>
Chris Williams <chris@bingosnet.co.uk>
Yuval (nothingmuch) Kogman
Torsten Raudssus <torsten@raudssus.de> http://www.raudssus.de/
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Chris Prather, Ash Berlin, Chris Williams, Yuval Kogman, Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Module Install Instructions
To install MooseX::POE, copy and paste the appropriate command in to your terminal.
cpanm MooseX::POE
perl -MCPAN -e shell install MooseX::POE
For more information on module installation, please visit the detailed CPAN module installation guide.