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

    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.