Markdent::Role::FilterHandler - A role for handlers which act as filters


Markdent documentation Contained in the Markdent distribution.

Index


Code Index:

NAME

Top

Markdent::Role::FilterHandler - A role for handlers which act as filters

VERSION

Top

version 0.17

DESCRIPTION

Top

This role implements behavior and interface for filtering handlers. A filter handler takes events and does something to some of them, and then passes them on to another handler.

REQUIRED METHODS

Top

* $handler->filter_event($event)

This method will always be called with a single object which does the Markdent::Role::Event role.

If this method returns a single event, it will be passed on to the next handler. If it does not return an event, the event is dropped from the stream.

ATTRIBUTES

Top

This role provides the following attributes:

handler

This is a read-only attribute. It is an object which does the Markdent::Role::Handler role.

This is the handler to which the filter passes events after filtering.

BUGS

Top

See Markdent for bug reporting details.

AUTHOR

Top

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

Top


Markdent documentation Contained in the Markdent distribution.

package Markdent::Role::FilterHandler;
BEGIN {
  $Markdent::Role::FilterHandler::VERSION = '0.17';
}

use strict;
use warnings;

use namespace::autoclean;
use Moose::Role;

with 'Markdent::Role::Handler';

requires 'filter_event';

has handler => (
    is       => 'ro',
    does     => 'Markdent::Role::Handler',
    required => 1,
);

sub handle_event {
    my $self = shift;
    my $event = shift;

    my $new_event = $self->filter_event($event);

    $self->handler()->handle_event($new_event)
        if $new_event;
}

1;

# ABSTRACT: A role for handlers which act as filters




__END__