Doug Bell > Beam-Emitter-0.002 > Beam::Emitter

Download:
Beam-Emitter-0.002.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.002   Source   Latest Release: Beam-Emitter-0.003

NAME ^

Beam::Emitter - Role for event emitting classes

SYNOPSIS ^

    package My::Emitter;

    use Moo;
    with 'Beam::Emitter';

    sub do_something {
        my ( $self ) = @_;

        # Give event listeners a chance to prevent something
        my $event = $self->emit( "before_something" );
        return if $event->is_default_stopped;

        # ... do something

        # Notify listeners we're done with something
        $self->emit( 'after_something' );
    }

DESCRIPTION ^

This role is used by classes that want to emit Beam::Event objects to subscribers.

METHODS ^

subscribe ( event_name, subref )

on ( event_name, subref )

Subscribe to an event from this object. event_name is the name of the event. subref is a subroutine reference that takes a single argument, the Beam::Event that is being emitted.

un ( event_name [, subref ] )

unsubscribe ( event_name [, subref ] )

Unsubscribe from an event. event_name is the name of the event. subref is the single listener subref to be removed. If no subref is given, will remove all listeners for this event.

emit ( name, event_args )

Emit an event with the given name. event_args is a list of name => value pairs to give to the Beam::Event object.

Use the class key in event_args to specify a different Event class.

syntax highlighting: