Text::MicroMason::PostProcess3pm
Apply filters to all template output
Usage
Instead of using this class directly, pass its name to be mixed in:
use Text::MicroMason;my $mason = Text::MicroMason->new( -PostProcess );
Use the standard compile and execute methods to parse and evaluate templates:
print $mason->compile( text=>$template )->( @%args );print $mason->execute( text=>$template, @args );
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 );
Overview
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.
Private Methods
post_process()-
$mason->post_process( $output ) : $filtered_outputApplies the post-processing filter.
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 6 times.