# PODNAME: Config::Model::models::Itself::ConfigRead
# ABSTRACT: Configuration class Itself::ConfigRead
=head1 NAME
Config::Model::models::Itself::ConfigRead - Configuration class Itself::ConfigRead
=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'. >>
Note: auto_create is migrated with 'C<$old>' and with $old => "C<- allow_empty>"
=head2 allow_empty - deprecated in favor of auto_create
B<Deprecated> I<< Optional. Type boolean. upstream_default: '0'. >>
=head1 SEE ALSO
=over
=item *
L<cme>
=item *
L<Config::Model::models::Itself::ConfigWR::DefaultLayer>
=back
=cut