The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

PDT::Config - Base class for PDT configuration objects.

*EARLY STAGE WARNING*

This module is currently in the early stages. For the latest please check the github page at http://github.com/exodist/PDT

DESCRIPTION

The base class for all PDT configuration objects.

SYNOPSYS

    package App::PDT::MyClass::Config;
    use strict;
    use warnings;

    use base 'PDT::Config';

    sub defaults {{ key => 'value' }}
    sub configs {[ '/path/to/config.yaml', ... ]}
    sub params {[qw/ param1 param2 ... /]}

    __PACKAGE__->subclass;

    1;
OVERRIDABLE CLASS METHODS

These are class methods you usually want to override.

$class->defaults()

Returns a hash with key value pairs to act as default config options.

$class->configs()

Returns a list of default locations for config files.

$class->params()

Returns a list fo all params recognised by this config class.

SPECIAL CLASS METHODS

__PACKAGE__->subclass()

Should always be called using your subclass. This method will create accessor methods for all parameters spefied in your overriden params() method.

CONSTRUCTOR

$class->new( %overrides, file => 'path/to/config.yaml' )

Create a new instance. Parameters should be key => 'value'. A config file can be specified using the 'file' key.

OBJECT METHODS

$obj->param( $name, $value )

Get/Override the value of the parameter.

$name is mandatory, $value is optional.

Sources values in this order, if a source is 'undef' it will move on to the next.

1. overrides 2. config file 3. defaults

$obj->overrides()

Returns the overrides hash.

$obj->config()

Returns the hash read from the config file.

AUTHORS

Chad Granum exodist7@gmail.com

COPYRIGHT

Copyright (C) 2010 Chad Granum

PDT-Config is free software; Standard perl licence.

PDT-Config is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 44:

'=item' outside of any '=over'

Around line 70:

You forgot a '=back' before '=head1'