The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DynaPage::Sourcer - DynPage text sources parser

 #------------------------------------------------------
 # (C) Daniel Peder & Infoset s.r.o., all rights reserved
 # http://www.infoset.com, Daniel.Peder@infoset.com
 #------------------------------------------------------
 $Revision: 1.4 $
 $Date: 2005/01/13 21:30:49 $

METHODS

new ( [ @data ] ) : blessed-hashref

For @data see Parse method.

Parse ( data ) : true

Parse source data. data could be either scalar string, scalar ref, hash-ref, array-ref or array. In case of hash-ref, array-ref or array each value is recursively crawled to find and parse parseable data.

parse_ref ( $source_stringref ) : true

The main source data parser.

There are two main format types of text sources:

 - single line
 
   value-name =- shrink line-inner tabs/spaces, drop line-outer whitespaces
   value-name =~ line whitespaces are preserved
 
 - multi line

   # UnIndent
   value-name ==
      shrink block-inner tabs/spaces
      drop block-outer newlines/linefeeds
      drop line-aouter spaces/tabs
   == value-name

   # SingleLiner
   value-name ==-
      shrink block-inner whitespaces
      drop block-outer whitespaces
   -== value-name

   # Preserver
   value-name ==~ 
      drop block up-to/behind first newline[?linefeed]
      preserve all whitespaces
   ~== value-name
Set ( $name, $content, $indexref ) : true

Set the named content.

Add ( $name, $content ) : numeric

Add the named content. Multiple occurences of same name are pushed.

Returns number of values.

Get ( [$name, [$indexref], [$joinstring]] ) : string|array|hashref

Get named content.

Without arguments returns $self->Content().

$indexref must be either numeric or arrayref, if specified.

numeric gets single value at specified array index.

arrayref gets joined values at specified array indexes.

Negative $indexref works same way as with perl arrays, eg index from the end of array.

Unless $indexref is specified, all joined values for the $name are returned.

For separating joined values, the $joinstring, $self->{'~JOINSTRING'} or '' will be used is this order.

Content ( ) : hashref

Get the whole content hashref.

Names ( ) : array | arrayref

Get list of content names.

NewNames ( ) : array | arrayref

Get list of names added during last parsing - see also UpdateStats().

NewValues ( [ $name ] ) : array | number

Get list of names with new values added during last parsing. Specifying $name will return number of new values added - see also UpdateStats().

ClearStats ( data ) : true

Clear parsing statistics by deleting ~NEW_KEY and ~NEW_VAL - see also UpdateStats().

UpdateStats ( $name ) : true

Update parsing statistics for given $name :

~NEW_KEY is assigned to 1 if it is first time of Set($name). ~NEW_VAL is allways incremented by 1

$self->{'~NEW_KEY'} and $self->{'~NEW_VAL'} are intended for internal use only.

TODO