NAME OpusVL::SysParams - Module to handle system wide parameters VERSION version 0.18 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. connect_info dbi:Pg:dbname=test1 connect_info user connect_info password 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. 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.