NAME

Kelp::Module::Config - Configuration for Kelp applications

DESCRIPTION

This is one of the two modules that are automatically loaded for each and every Kelp application. It uses Config::Hash to read Perl-style hashes from files and merge them depending on the value of the mode attribute.

The main configuration file name is config.pl, and it will be searched in the conf directory or ../conf. The latter is convenient for running tests which use the same configuration settings as the main app.

REGISTERED METHODS

This module registers the following methods into the underlying app:

config

A wrapper for the get method in Config::Hash.

# Somewhere in the app
my $pos = $self->config('row.col.position');

# Gets {row}->{col}->{position} from the config hash

config_hash

A reference to the entire configuration hash.

my $pos = $self->config_hash->{row}->{col}->{position};

Using this or config is entirely up to the application developer.

DEFAULTS

This module sets certain default values. All of them may be overridden in any of the conf/ files. It probably pays to view the code of this module and look and the defaults sub to see what is being set by default, but here is the short version:

charset

UTF-8

app_url

http://localhost:5000

modules

An arrayrf with module names to load on startup. The default value is ['JSON', 'Template', 'Logger']

modules_init

A hashref with initializations for each of the loaded modules, except this one, ironically.

middleware

An arrayref with middleware to load on startup. The default value is an empty array.

middleware_init

A hashref with iitialization arguments for each of the loaded middleware.