Config::Model::Backend::Any - Virtual class for other backends
version 1.225
package Config::Model::Backend::Foo ; use Moose ; use Log::Log4perl qw(get_logger :levels); extends 'Config::Model::Backend::Any'; # optional sub suffix { return '.foo'; } # mandatory sub read { my $self = shift ; my %args = @_ ; # args are: # root => './my_test', # fake root directory, userd for tests # config_dir => /etc/foo', # absolute path # file => 'foo.conf', # file name # file_path => './my_test/etc/foo/foo.conf' # io_handle => $io # IO::File object # check => yes|no|skip return 0 unless defined $args{io_handle} ; # or die? foreach ($args{io_handle}->getlines) { chomp ; s/#.*/ ; next unless /\S/; # skip blank line # $data is 'foo=bar' which is compatible with load $self->node->load(step => $_, check => $args{check} ) ; } return 1 ; } # mandatory sub write { my $self = shift ; my %args = @_ ; # args are: # root => './my_test', # fake root directory, userd for tests # config_dir => /etc/foo', # absolute path # file => 'foo.conf', # file name # file_path => './my_test/etc/foo/foo.conf' # io_handle => $io # IO::File object # check => yes|no|skip my $ioh = $args{io_handle} ; foreach my $elt ($self->node->get_element_name) { my $obj = $self->node->fetch_element($elt) ; my $v = $self->node->grab_value($elt) ; # write value $ioh->print(qq!$elt="$v"\n!) if defined $v ; $ioh->print("\n") if defined $v ; } return 1; } no Moose ; __PACKAGE__->meta->make_immutable ;
This Moose class is to be inherited by other backend plugin classes
See "read callback" in Config::Model::AutoRead and "write callback" in Config::Model::AutoRead for more details on the method that must be provided by any backend classes.
The constructor should be used only by Config::Model::Node.
Whether the backend supports to read and write annotation. Default i s 0. Override if your backend supports annotations
Read the global comments (i.e. the first block of comments until the first blank or non comment line) and store them as root node annotation. lines is an array ref containing file lines. =head1 AUTHOR
Dominique Dumont, (ddumont at cpan dot org)
Config::Model, Config::Model::AutoRead, Config::Model::Node, Config::Model::Backend::Yaml,
To install Config::Model, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Config::Model
CPAN shell
perl -MCPAN -e shell install Config::Model
For more information on module installation, please visit the detailed CPAN module installation guide.