-
-
16 Apr 2014 18:33:32 UTC
- Distribution: Embperl
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (9)
- Testers (66 / 28 / 0)
- Kwalitee
- License: unknown
- Activity
24 month- Tools
- Download (768.94KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
and 1 contributors- Gerald Richter <richter at embperl dot org>
- Dependencies
- File::Spec
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
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.
Module Install Instructions
To install Embperl, copy and paste the appropriate command in to your terminal.
cpanm Embperl
perl -MCPAN -e shell install Embperl
For more information on module installation, please visit the detailed CPAN module installation guide.