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