# 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', 'ini_file', 'custom'.  >> 

Here are some explanations on the possible values:

=over

=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 'ini_file'

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 '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>" and 'C<$replace{perl}>' => "C<perl_file>", 'C<$replace{cds}>' => "C<cds_file>", 'C<$replace{ini}>' => "C<ini_file>"

=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 values stored in list element. Usually "\s+" or "[,\s]"I<< Optional. Type uniline.  >> 

=head2 join_list_value

string to join values from list element. 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 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

