NAME
OpusVL::SysParams - Module to handle system wide parameters
VERSION
version 0.20
SYNOPSIS
This module handles system wide parameters.
use OpusVL::SysParams;
my $sys_param = OpusVL::SysParams->new();
# or
my $sys_param = OpusVL::SysParams->new({ schema => $schema});
my $val = $sys_param->get('login.failures');
$sys_param->set('login.failures', 3);
...
METHODS
new
If the constructor is called without a schema specified it will attempt to load up a schema based on a config file in the catalyst style for the name 'OpusVL::SysParams'. This config file should have a Model::SysParams section containing the config.
<Model::SysParams>
connect_info dbi:Pg:dbname=test1
connect_info user
connect_info password
</Model::SysParams>
Note that you must specify at least 2 connect_info parameters even if you are using SQLite otherwise the code will crash.
get
Get a system parameter. The key name is simply a string. It's suggested you use some kind of schema like 'system.key' to prevent name clashes with other unoriginal programmers.
get_or_set
Get a system parameter, setting it to a default if it doesn't already exist.
$params->get_or_set($name, $default_sub);
$name
- the name of the system parameter
$default_sub
- A CODEREF returning the default value. $params
(your instance of OpusVL::SysParams) is passed as the first argument.
$type
- We will try to determine the type from your $default_sub
, but if it's unclear, you may wish to be explicit here.
Example:
$params->get_or_set('partner.titles', sub { 'Mr|Mrs|Miss|Mx' });
del
Delete a system parameter. The key name is simply a string.
key_names
Returns the keys of the system parameters.
set
Set a system parameter. The key name is simply a string. It's suggested you use some kind of schema like 'system.key' to prevent name clashes with other unoriginal programmers.
The value can be any data structure so long as it doesn't contain code.
set_json
Set a system parameter. This allows you to pass the object encoded as JSON in order to make it simpler for web interfaces to talk to the settings.
get_json
Returns the value encoded in json. Primarily for talking with web interfaces.
SUPPORT
If you require assistance, support, or further development of this software, please contact OpusVL using the details below:
Telephone: +44 (0)1788 298 410
Email: community@opusvl.com
Web: http://opusvl.com
AUTHOR
OpusVL - www.opusvl.com
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 - 2016 by OpusVL - www.opusvl.com.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.