Config::Model::Backend::PlainFile (3)
Leading comments
Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAME
Config::Model::Backend::PlainFile - Read and write config as plain fileVERSION
version 2.106SYNOPSIS
use Config::Model; my $model = Config::Model->new; my $inst = $model->create_config_class( name => "WithPlainFile", element => [ [qw/source new/] => { qw/type leaf value_type uniline/ }, ], read_config => [ { backend => 'plain_file', config_dir => '/tmp', }, ], ); my $inst = $model->instance(root_class_name => 'WithPlainFile' ); my $root = $inst->config_root ; $root->load('source=foo new=yes' ); $inst->write_back ;
Now "/tmp" directory contains 2 files: "source" and "new" with "foo" and "yes" inside.
DESCRIPTION
This module is used directly by Config::Model to read or write the content of a configuration tree written in several files. Each element of the node is written in a plain file.Element type and file mapping
Element values are written in one or several files depending on their type.- leaf
- The leaf value is written in one file. This file can have several lines if the leaf type is "string"
- list
- The list content is written in one file. Each line of the file is a value of the list.
- hash
- Not supported
File mapping
By default, the configuration file is named after the element name (like in synopsis above).The "file" parameter can also be used to specify a file name that take into account the path in the tree using "&index()" and "&element()" functions from Config::Model::Role::ComputeFunction.
For instance, with the following model:
class_name => "Foo", element => [ string_a => { type => 'leaf', value_type => 'string'} string_b => { type => 'leaf', value_type => 'string'} ], read_config => [{ backend => 'PlainFile', config_dir => 'foo', file => '&element(-).&element', file_mode => 0644, # optional }]
If the configuration is loaded with "example string_a=something string_b=else", this backend writes ""something"" in file "example.string_a" and "else" in file "example.string_b".
"file_mode" parameter can be used to set the mode of the written file. "file_mode" value can be in any form supported by ``chmod'' in Path::Tiny.
Methods
read_leaf (obj,elt,check,file,args);
Called by read method to read the file of a leaf element. "args" contains the arguments passed to read method.read_hash (obj,elt,check,file,args);
Like read_leaf for hash elements.read_list (obj,elt,check,file,args);
Like read_leaf for list elements.write ( )
"write()" writes a file for each element of the calling class. Works only for leaf and list elements. Other element type are skipped. Always return 1 (unless it died before).AUTHOR
Dominique Dumont, (ddumont at cpan dot org)SEE ALSO
Config::Model, Config::Model::BackendMgr, Config::Model::Backend::Any,AUTHOR
Dominique DumontCOPYRIGHT AND LICENSE
This software is Copyright (c) 2005-2017 by Dominique Dumont.This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999