#!/usr/bin/perl package Devel::Events::Handler::Callback; use Moose; with qw/Devel::Events::Handler/; has callback => ( isa => "CodeRef", is => "rw", required => 1, ); around new => sub { my $next = shift; my ( $class, @args ) = @_; @args = ( callback => @args ) if @args == 1; $class->$next(@args); }; sub new_event { my ( $self, @event ) = @_; $self->callback->( @event ); } __PACKAGE__; __END__ =pod =head1 NAME Devel::Events::Handler::Callback - An event handler that delegates to code references. =head1 SYNOPSIS use Devel::Events::Handler::Callback; my $h = Devel::Events::Handler::Callback->new( callback => sub { my ( $type, %data ) = @_; # ... }, ); =head1 DESCRIPTION This object will let you easily create handlers that are callbacks. This is used extensively in the test suites. =head1 ATTRIBUTES =over 4 =item callback Accepts a code reference. Required. =back =head1 METHODS =over 4 =item new This method is overridden so that when it is passed only one parameter that parameter will be used for the C attribute. =item new_event @event Delegates to C. =back =cut