Provided by: libconfig-model-perl_2.117-1_all bug

NAME

       Config::Model::Annotation - Read and write configuration annotations

VERSION

       version 2.117

SYNOPSIS

        use Config::Model ;

        # define configuration tree object
        my $model = Config::Model->new ;
        $model ->create_config_class (
           name => "MyClass",
           element => [
               [qw/foo bar/] => {
                   type => 'leaf',
                   value_type => 'string'
               },
               baz => {
                   type => 'hash',
                   index_type => 'string' ,
                   cargo => {
                       type => 'leaf',
                       value_type => 'string',
                   },
               },

           ],
        ) ;

        my $inst = $model->instance(root_class_name => 'MyClass' );

        my $root = $inst->config_root ;

        # put some data in config tree the hard way
        $root->fetch_element('foo')->store('yada') ;
        $root->fetch_element('baz')->fetch_with_id('en')->store('hello') ;

        # put annotation the hard way
        $root->fetch_element('foo')->annotation('english') ;
        $root->fetch_element('baz')->fetch_with_id('en')->annotation('also english') ;

        # put more data the easy way
        my $steps = 'baz:fr=bonjour#french baz:hr="dobar dan"#croatian';
        $root->load( steps => $steps ) ;

        # dump resulting tree with annotations
        print $root->dump_tree;

        # save annotations
        my $annotate_saver = Config::Model::Annotation
         -> new (
                 config_class_name => 'MyClass',
                 instance => $inst ,
                 root_dir => '/tmp/', # for test
                ) ;
        $annotate_saver->save ;

        # now check content of /tmp/config-model/MyClass-note.pl

DESCRIPTION

       This module provides an object that read and write annotations (a bit like comments) to
       and from a configuration tree and save them in a file (not configuration file). This
       module can be used to save annotation for configuration files that do not support
       comments.

       THis module should not be used for configuration files that support comments.

       Depending on the effective id of the process, the annotation is saved in:

       •   "/var/lib/config-model/<model_name>-note.yml" for root (EUID == 0)

       •   "~/.config-model/<model_name>-note.yml" for normal user (EUID > 0)

CONSTRUCTOR

       Quite standard. The constructor is passed a Config::Model::Instance object.

METHODS

   save()
       Save annotations in a file (See DESCRIPTION)

   load()
       Loads annotations from a file (See DESCRIPTION)

CAVEATS

       This module is currently not used.

AUTHOR

       Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO

       Config::Model, Config::Model::Node, Config::Model::Loader, Config::Model::Searcher,
       Config::Model::Value,

AUTHOR

       Dominique Dumont

COPYRIGHT AND LICENSE

       This software is Copyright (c) 2005-2018 by Dominique Dumont.

       This is free software, licensed under:

         The GNU Lesser General Public License, Version 2.1, February 1999