Recipe(3pm)
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 dataParameter:filenameGives 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.