Iterator::BreakOn::Event - Build and destroy events


Iterator-BreakOn documentation Contained in the Iterator-BreakOn distribution.

Index


Code Index:

NAME

Top

Iterator::BreakOn::Event - Build and destroy events

VERSION

Top

This documentation refers to Iterator::BreakOn::Event version 0.1

SYNOPSIS

Top

    use Iterator::BreakOn::Event;

    my $event = Iterator::BreakOn::Event->new( { 
                    name    => 'before_location',
                    field   =>  'location',
                    value   =>  'AVILA',
                    });

    if ($event->name() eq 'AVILA') {
        # do something ...

    }

DESCRIPTION

Top

This module build and destroy event objects for the Iterator::BreakOn package.

SUBROUTINES/METHODS

Top

new( )

Create and initialize a new Iterator::BreakOn::Event object. Return a reference to the new object or undef in case of fail.

name( )

Accessor/mutator for the event name. This parameter only can be 'on_first', 'on_last', 'on_every', 'before_*', or 'after_*'; other values raise an exception.

field( )

Accessor/mutator for the field attribute of the object.

value( )

Accessor/mutator for the value attribute of the object.

DIAGNOSTICS

Top

invalid event name

DEPENDENCIES

Top

Class::Accessor

BUGS AND LIMITATIONS

Top

There are no known bugs in this module. Please report problems to the author. Patches are welcome.

AUTHOR

Top

VĂ­ctor Moral <victor@taquiones.net>

LICENSE AND COPYRIGHT

Top


Iterator-BreakOn documentation Contained in the Iterator-BreakOn distribution.

package Iterator::BreakOn::Base::Event;
use base qw(Class::Accessor);
use strict;
use warnings;
use Carp;

#
#   I'm using This pseudo class the limitations of Class::Accessor for
#   overriding autogenerated accessors
#   

our $VERSION = '0.1';

Iterator::BreakOn::Base::Event->mk_accessors( qw( name field value ) );

package Iterator::BreakOn::Event;
use base qw(Iterator::BreakOn::Base::Event);
use strict;
use warnings;
use Carp;

use Iterator::BreakOn::X;

our $VERSION = '0.1';

sub name {
    my  $self   =   shift;
    my  $value  =   shift;

    if (defined($value)) {
        if ($value =~ m{on_first|on_last|on_every|
                                                before_(\w+)|after_(\w+)}xms) {
            return $self->SUPER::name( $value );
        }
        else {
            Iterator::BreakOn::X->invalid_event->throw( name => $value );
        }
    }
        
    return $self->SUPER::name();
}

1;
__END__