NAME

Smolder::Conf - Smolder configuration module

SYNOPSIS

# all configuration directives are available as exported subs
use Smolder::Conf qw(Secret Port);
$secret = Secret;

# you can also call get() in Smolder::Conf directly
$port = Smolder::Conf->get("Port");

# or you can access them as methods in the Smolder::Conf module
$port = Smolder::Conf->Port;

# give Smolder::Conf some values to override the defaults
Smolder::Conf->init(
    Secret   => '1Adxd23023s',
    Port     => 80,
    HostName => 'smolder.myorg.com',
    LogFile  => '/path/to/logs',
);

# pull the conf values from a file
Smolder::Conf->init_from_file('/path/to/conf/file');

DESCRIPTION

This module provides access to the configuration settings in smolder.conf. Smolder tries to have reasonable defaults but they can be overridden when needed.

METHODS

init

Override the configuration defaults by providing named-value pairs:

Smolder::Conf->init(
    Secret   => '1Adxd23023s',
    Port     => 80,
    HostName => 'smolder.myorg.com',
    LogFile  => '/path/to/logs',
);

init_from_file

Override the configuration defaults by providing a file. Config files are simple lists of name-values pairs. One pair per-line and each name/value is separated by whitespace:

HostName    smolder.test
DataDir     /var/lib/smolder/
Port        80
FromAddress smolder@smolder.test
TemplateDir /var/share/smolder/templates
HtdocsDir   /var/share/smolder/htdocs
SQLDir      /var/share/smolder/sql

get

Given a directive name, returns the value (which may be a list) of a configuration directive. Directive names are case-insensitive.

$value = Smolder::Conf->get('DirectiveName');

test_data_dir

The directory path for test data directory for this copy of Smolder

ACCESSOR METHODS

All configuration directives can be accessed as methods themselves.

my $port = Smolder::Conf->port();

Gets the value of a directive using an autoloaded method. Directive names are case-insensitive.

EXPORTING DIRECTIVES

Each configuration directive can also be accessed as an exported subroutine.

use Smolder::Conf qw(port FromAddress);
...
my $port = port();
my $from = FromAddress();

Directive names are case-insensitive. Gets the value of a variable using an exported, autoloaded method. Case-insensitive.