NAME

    POE::Component::IRC::Plugin::Role - A Moose role for
    POE::Component::IRC plugins

VERSION

    version 0.08

SYNOPSIS

      package My::Plugin;
    
      use Moose;
      use POE::Component::IRC::Plugin qw(:ALL);
    
      with 'POE::Component::IRC::Plugin::Role';
    
      # PCI_register and PCI_unregister are automatically dealt with
    
      sub S_001 {
        my $self = shift;
        $self->irc->yield( 'join', '#channel' );
        return PCI_EAT_NONE;
      }
    
      1;

DESCRIPTION

    POE::Component::IRC::Plugin::Role is a Moose role that encapsulates
    some of the boilerplate required to write POE::Component::IRC plugins
    with Moose.

    Simply consume the role in your Moose based plugins.

ATTRIBUTES

    irc

      Should be a POE::Component::IRC object. It can not be set in the
      constructor, but has set_irc and clear_irc writer and clearer
      methods, respectively. It is usually set for you by PCI_register and
      cleared by PCI_unregister methods.

    S_events

      An arrayref of SERVER events to register for when PCI_Register is
      called. The default is to register events for the S_* prefixed
      methods in your module.

    U_events

      An arrayref of USER events to register for when PCI_register is
      called. The default is to register events for the U_* prefixed
      methods in your module.

METHODS

    PCI_register

      This is called everytime a plugin object is added to
      POE::Component::IRC. It will set the irc attribute and register for
      the requested S_events and U_events.

    PCI_unregister

      This is called everytime a plugin object is removed from
      POE::Component::IRC. It will clear the irc attribute.

SEE ALSO

    POE::Component::IRC

    POE::Component::IRC::Plugin

    Moose::Role

AUTHORS

      * Chris Williams <chris@bingosnet.co.uk>

      * Chris Prather

      * Shawn M Moore

COPYRIGHT AND LICENSE

    This software is copyright (c) 2017 by Chris Williams.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

