NAME
Config::Model::Backend::PlainFile - Read and write config as plain file
VERSION
version 2.155
SYNOPSIS
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/ },],rw_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'}],rw_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
Parameters: "(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
Parameters: "(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 Dumont
COPYRIGHT AND LICENSE
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999