Config::MVP::Reader.3pm

Langue: en

Version: 2010-06-15 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Config::MVP::Reader - object to read config from storage into an assembler

VERSION

version 2.101650

SYNOPSIS

   use Config::MVP::Reader::YAML; # this doesn't really exist
 
   my $reader   = Config::MVP::Reader::YAML->new;
 
   my $sequence = $reader->read_config('/etc/foobar.yml');
 
 

DESCRIPTION

A Config::MVP::Reader exists to read configuration data from storage (like a file) and convert that data into instructions to a Config::MVP::Assembler, which will in turn convert them into a Config::MVP::Sequence, the final product.

METHODS

read_config

   my $sequence = $reader->read_config($location, \%arg);
 
 

This method is passed a location, which has no set meaning, but should be the mechanism by which the Reader is told how to locate configuration. It might be a file name, a hashref of parameters, a DBH, or anything else, depending on the needs of the specific Reader subclass.

It is also passed a hashref of arguments, of which there is only one valid argument:

  assembler - the Assembler object into which to read the config
 
 

If no assembler argument is passed, one will be constructed by calling the Reader's "build_assembler" method.

Subclasses should generally not override "read_config", but should instead implement a "read_into_assembler" method, described below.

read_into_assembler

This method should not be called directly. It is called by "read_config" with the following parameters:
   my $sequence = $reader->read_into_assembler( $location, $assembler );
 
 

The method should read the configuration found at $location and use it to instruct the $assembler (a Config::MVP::Assembler) what configuration to perform.

The default implementation of this method will throw an exception complaining that it should have been implemented by a subclass.

build_assembler

If no Assembler is provided to "read_config"'s "assembler" parameter, this method will be called on the Reader to construct one.

It must return a Config::MVP::Assembler object, and by default will return an entirely generic one.

AUTHOR

Ricardo Signes <rjbs@cpan.org> This software is copyright (c) 2010 by Ricardo Signes.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.