The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Text::MicroMason::PostProcess - Apply Filters to All Template Output

SYNOPSIS

Instead of using this class directly, pass its name to be mixed in:

    use Text::MicroMason;
    my $mason = Text::MicroMason->new( -PostProcess );

You can define output filters at creation or subsequently:

    $mason = Text::MicroMason->new( -PostProcess, post_process => $func );

    $mason->post_processors( $func );

    $mason->compile( text => $template, post_process => $func );

    $mason->execute( text => $template, { post_process => $func }, @args );

Then use the compile and execute methods as you normally would:

    print $mason->execute( text=>$template, 'name'=>'Dave' );

DESCRIPTION

This mixin class adds filtering of all template output to any MicroMason class.

Filter functions can accept the string to be output and return a filtered version:

  $mason->post_process( sub {
    my $foo = shift;
    $foo =~ s/a-Z/A-Z/;
    return $foo;
  } );

If a filter function has an empty prototype, it's assumed to work on $_:

  $mason->post_process( sub () {
    s/a-Z/A-Z/
  } );

Public Methods

post_processors()

Gets and sets the functions to be used for output filtering.

Called with no arguments, returns the list of filter functions:

  my @functions = $mason->post_processors();

Called with one array-ref argument, sets the list of filter functions:

  $mason->post_processors( \@functions );

Called with one or more function-ref arguments, appends to the list:

  $mason->post_processors( $filter1, $filter2 );

Supported Attributes

post_process

Stores a reference to a function or an array of functions to be used:

    $mason->{post_process} = $function;
    $mason->{post_process} = [ $function1, $function2 ];

You can set this attribute when you create your mason object, or in calls to the compile and execute methods.

SEE ALSO

For an overview of this templating framework, see Text::MicroMason.

This is a mixin class intended for use with Text::MicroMason::Base.

For distribution, installation, support, copyright and license information, see Text::MicroMason::ReadMe.