Provided by: libembperl-perl_2.5.0-17_amd64
NAME
Embperl::Recipe - base class for defining custom recipes
SYNOPSIS
EMBPERL_RECIPE "XSLT Embperl"
DESCRIPTION
Embperl::Recipe provides basic features that are necessary for createing your own recipes. To do so you have to create a class that provides a "get_recipe" method which returns a array reference that contains the description what to do. get_recipe ($class, $r, $recipe) $class The class name $r The Embperl request record object (Embperl::Req), maybe a derived object when running under EmbperlObject. $recipe The name of the recipe The function must return an array that describes the desired action. The array contains a tree structure of providers. Providers file read file data Parameter: filename Gives the file to read memory get data from a scalar Parameter: source Gives the source as a scalar reference name Gives the name under which this item should be cache epparse parse file into a Embperl tree structure Parameter: source Gives the source syntax Syntax to use epcompile compile Embperl tree structure Parameter: source Gives the source eprun execute Embperl tree structure Parameter: source Gives the source cache_key See description of cacheing cache_key_options See description of cacheing cache_key_func See description of cacheing eptostring convert Embperl tree structure to string Parameter: source Gives the source libxslt-parse-xml parse xml source for libxslt Parameter: source Gives the xml source libxslt-compile-xsl parse and compile stylesheet for libxslt Parameter: stylesheet Gives the stylesheet source libxslt do a xsl transformation via libxslt Parameter: source Gives the parsed xml source stylesheet Gives the compiled stylesheet source param Gives the parameters as hash ref xalan-parse-xml parse xml source for xalan Parameter: source Gives the xml source xalan-compile-xsl parse and compile stylesheet for xalan Parameter: stylesheet Gives the stylesheet source xalan do a xsl transformation via xalan Parameter: source Gives the parsed xml source stylesheet Gives the compiled stylesheet source param Gives the parameters as hash ref Cache parameter expires_in expires_func expires_filename cache Format Heres an example that show how the recipe must be build: sub get_recipe { my ($class, $r, $recipe) = @_ ; my $param = $r -> component -> param ; my @recipe ; push @recipe, {'type' => 'file' } ; push @recipe, {'type' => 'epparse' } ; push @recipe, {'type' => 'epcompile', cache => 1 } ; push @recipe, {'type' => 'eprun' } ; my $config = $r -> component -> config ; my $xsltproc = $config -> xsltproc ; my @stylesheet = ( { type => 'file', filename => $config -> xsltstylesheet, }, { type => $xsltproc . '-compile-xsl', cache => 1 }, ) ; push @recipe, {'type' => 'eptostring' } ; push @recipe, {'type' => $xsltproc . '-parse-xml', } ; push @recipe, {'type' => $xsltproc, stylesheet => \@stylesheet } ; return \@recipe ; } This corresponds to the following diagramm (when xsltproc = xalan): +-------------------+ +--------------------+ + file {inputfile} + +file{xsltstylesheet}+ +-------------------+ +--------------------+ | | v v +-------------------+ +-------------------+ + xalan-parse-xml + + xalan-compile-xsl + +-------------------+ +-------------------+ | | | | | +-----------+ | +-------> + xalan + <-+ +-----------+ Take a look at the recipes that comes with Embperl to get more ideas what can be done.