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.