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

NAME

Prophet::Config

SYNOPSIS

From, for example, a class that inherits from Prophet::App:

    has config => (
        is      => 'rw',
        isa     => 'Prophet::Config',
        default => sub {
            my $self = shift;
            return Prophet::Config->new(
                app_handle => $self,
                confname => 'prophetrc',
            );
        },
    );

DESCRIPTION

This class represents the configuration of Prophet and the application built on top of it. It's just an instance of Config::GitLike with a few small customizations and additions.

METHODS

new( confname => 'prophetrc', app_handle => $instance_of_prophet_app )

Initialize the configuration. Does NOT load the config for you! You need to call load for that. The configuration will also load automatically the first time your prophet application tries to get a config variable.

Both constructor arguments are required.

replica_config_file

The replica-specific configuration file, or the configuration file given by PROPHET_APP_CONFIG if that environmental variable is set.

aliases( $config_filename )

A convenience method that gets you a hash (or a hashref, depending on context) of all currently defined aliases. (Basically, every entry in the 'alias' section of the config file.)

If a filename is passed in, this method will only return the aliases that are defined in that particular config file.

sources

A convenience method that gets you a hash (or a hashref, depending on context) of all currently defined source replicas, in the format { 'name' => 'URL' }, or { 'URL' => 'name' } if the argument by_url is passed in.

CONFIG VARIABLES

The following config variables are currently used in various places in Prophet:

<record-type>.summary-format record.summary-format user.email-address alias.<alias>

SEE ALSO

Most of the useful methods for getting and setting configuration variables actually come from Config::GitLike. See that module's documentation for details.