The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.