# PODNAME: Config::Model::models::Itself::ConfigWrite
# ABSTRACT:  Configuration class Itself::ConfigWrite
=encoding utf8

=head1 NAME

Config::Model::models::Itself::ConfigWrite - Configuration class Itself::ConfigWrite

=head1 DESCRIPTION

Configuration classes used by L<Config::Model>

=head1 Elements

=head2 syntax

Deprecated parameter that specified the file syntax to store permanently configuration data. Replaced by "backend" B<Deprecated> I<< Optional. Type enum. choice: 'cds', 'perl', 'ini', 'custom'.  >> 

=head2 backend

specifies the backend to store permanently configuration data. I<< Optional. Type enum. choice: 'cds_file', 'perl_file', 'custom'.  >> 

Here are some explanations on the possible values:

=over

=item 'IniFile'

Ini file format. Beware that the structure of your model must match the limitations of the INI file format, i.e only a 2 levels hierarchy. Configuration filename is made with instance name

=item 'cds_file'

file with config data string. This is Config::Model own serialisation format, designed to be compact and readable. Configuration filename is made with instance name

=item 'custom'

Custom format. You must specify your own class and method to perform the read or write function. See Config::Model::AutoRead doc for more details

=item 'perl_file'

file with a perl data structure. Configuration filename is made with instance name

=back



Note: backend is migrated with 'C<$old>' and with $old => "C<- syntax>"

=head2 config_dir

I<< Optional. Type uniline.  >> 

=head2 os_config_dir - configuration file directory for specific OS

Specify and alternate location of a configuration directory depending on the OS (as returned by C<$^O> or C<$Config{'osname'}>, see L<perlport/PLATFORMS>) Common values for C<$^O> are 'linux', 'MSWin32', 'darwin' I<< Optional. Type hash of uniline.  >> 

=head2 file - target configuration file name

specify the configuration file name. This parameter may not be applicable depending on your application. It may also be hardcoded in a custom backend. If not specified, the instance name will be used as base name for your configuration file. I<< Optional. Type uniline.  >> 

=head2 default_layer - How to find default values in a global config file

Specifies where to find a global configuration file that specifies default values. For instance, this is used by OpenSSH to specify a global configuration file (C</etc/ssh/ssh_config>) that is overridden by user's file. I<< Optional. Type node of class L<Itself::ConfigWR::DefaultLayer|Config::Model::models::Itself::ConfigWR::DefaultLayer> .  >> 

=head2 class

I<< Optional. Type uniline.  >> 

=head2 store_class_in_hash

Specify element hash name that will contain all INI classes. See L<Config::Model::Backend::IniFile/"Arbitrary class name"> I<< Optional. Type uniline.  >> 

=head2 section_map

Specify element name that will contain one INI class. E.g. to store INI class [foo] in element Foo, specify { foo => "Foo" } I<< Optional. Type hash of uniline.  >> 

=head2 split_list_value

Regexp to split the value read from ini file. Usually "\s+" or "[,\s]" I<< Optional. Type uniline.  >> 

=head2 split_check_list_value

Regexp to split the value read from ini file. Usually "\s+" or "[,\s]" I<< Optional. Type uniline.  >> 

=head2 join_list_value

string to join list values before writing the entry in ini file. Usually " " or ", " I<< Optional. Type uniline.  >> 

=head2 join_check_list_value

string to join checked items names before writing the entry in the ini file. Usually " " or ", " I<< Optional. Type uniline.  >> 

=head2 write_boolean_as

Specify how to write a boolean value in config file. Suggested values are "no","yes". I<< Optional. Type list of uniline.  >> 

=head2 force_lc_section

force section to be lowercase. I<< Optional. Type boolean. upstream_default: '0'.  >> 

=head2 force_lc_key

force key names to be lowercase. I<< Optional. Type boolean. upstream_default: '0'.  >> 

=head2 force_lc_value

force values to be lowercase. I<< Optional. Type boolean. upstream_default: '0'.  >> 

=head2 full_dump

Also dump default values in the data structure. Useful if the dumped configuration data will be used by the application. (default is yes) I<< Optional. Type boolean. upstream_default: '1'.  >> 

=head2 comment_delimiter

comment starts with this character. I<< Optional. Type uniline. upstream_default: '#'.  >> 

=head2 auto_delete - Delete empty configuration file

Delete configuration files when no information is left in there. This may happen when data is removed by user. This is mostly useful when the  configuration of an application is made of several files. I<< Optional. Type boolean. upstream_default: '0'.  >> 

=head2 function

I<< Optional. Type uniline.  >> 

=head2 auto_create - Creates configuration files as needed

I<< Optional. Type boolean. upstream_default: '0'.  >> 

=head1 SEE ALSO

=over

=item *

L<cme>

=item *

L<Config::Model::models::Itself::ConfigWR::DefaultLayer>

=back

=cut

