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

NAME

Config::Model::Loader - Load serialized data into config tree

SYNOPSIS

 use Config::Model ;

 # create your config model
 my $model = Config::Model -> new ;
 $model->create_config_class( ... ) ;

 # create instance
 my $inst = $model->instance (root_class_name => 'FooBar', 
                              instance_name => 'test1');

 # create root of config
 my $root = $inst -> config_root ;

 # put some data in config tree
 my $step = 'std_id:ab X=Bv - std_id:bc X=Av - a_string="toto tata"';
 $root->load( step => $step ) ;

DESCRIPTION

This module is used directly by Config::Model::Node to load serialized configuration data into the configuration tree.

Serialized data can be written by the user or produced by Config::Model::Dumper while dumping data from a configuration tree.

CONSTRUCTOR

new ( )

No parameter. The constructor should be used only by Config::Model::Node.

load string syntax

The string is made of the following items separated by spaces:

-

Go up one node

!

Go to the root node of the configuration tree.

xxx

Go down using xxx element. (For node type element)

xxx:yy

Go down using xxx element and id yy (For hash or list element with node cargo_type)

xxx~yy

Delete item referenced by xxx element and id yy. For a list, this is equivalent to splice xxx,yy,1. This command does not go down in the tree (since it has just deleted the element). I.e. a '-' is generally not needed afterwards.

xxx=zz

Set element xxx to value yy. load also accepts to set elements with a quoted string. (For leaf element)

For instance foo="a quoted string". Note that you cannot embed double quote in this string. I.e foo="a \"quoted\" string" will fail.

xxx=z1,z2,z3

Set list element xxx to list z1,z2,z3. Use ,, for undef values, and "" for empty values.

I.e, for a list ('a',undef,'','c'), use a,,"",c.

xxx:yy=zz

For hash element containing leaf cargo_type. Set the leaf identified by key yy to value zz.

Methods

load ( ... )

Load data into the node tree (from the node passed with node) and fill values as we go following the instructions passed with step. (step can also be an array ref).

Parameters are:

node

node ref of the root of the tree (of sub-root) to start the load from.

step

A string or an array ref containing the steps to load. See above for a description of the string.

experience

Specify the experience level used during the load (default: master). The experience can be intermediate advanced master. The load will raise an exception if the step of the load string tries to access an element with experience higher than user's experience.

AUTHOR

Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO

Config::Model,Config::Model::Node,Config::Model::Dumper