Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

/var/sites/help-site.com/auto/tmp/CPAN/9677/Embperl-2.3.0/Embperl/Recipe.pm

/var/sites/help-site.com/auto/tmp/CPAN/9677/Embperl-2.3.0/Embperl/Recipe.pm



NAME

Embperl 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.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy