GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  BADGER::CONFIG (3)

.ds Aq ’

NAME

Badger::Config - configuration module

CONTENTS

SYNOPSIS



    use Badger::Config;
   
    my $config = Badger::Config->new(
        user => {
            name => {
                given  => Arthur,
                family => Dent,
            },
            email => [
                arthur@dent.org,
                dent@heart-of-gold.com,
            ],
        },
        planet => {
            name        => Earth,
            description => Mostly Harmless,
        },
    );
   
    # fetch top-level data item - these both do the same thing
    my $user = $config->user;                       # shortcut method
    my $user = $config->get(user);                # generic get() method
   
    # fetch nested data item - these all do the same thing
    print $config->get(user, name, given);    # Arthur
    print $config->get(user.name.family);         # Dent
    print $config->get(user/email/0);             # arthur@dent.org
    print $config->get(user email 1);             # dent@heart-of-gold.com



DESCRIPTION

This is a quick hack to implement a placeholder for the Badger::Config module. A config object is currently little more than a blessed hash with an AUTOLOAD method which allows you to get/set items via methods.

Update: this has been improved a little since the above was written. It’s still incomplete, but it’s being worked on.

METHODS

new()

Constructor method to create a new Badger::Config object. Configuration data can be specified as the data named parameter:



    my $config = Badger::Config->new(
        data => {
            name  => Arthur Dent,
            email => arthur@dent.org,
        },
    );



The items parameter can be used to specify the names of other valid configuration values that this object supports.



    my $config = Badger::Config->new(
        data => {
            name  => Arthur Dent,
            email => arthur@dent.org,
        },
        items => planet friends,
    );



Any data items defined in either data or items can be accessed via methods.



    print $config->name;                # Arthur Dent
    print $config->email;               # arthur@dent.org
    print $config->planet || Earth;   # Earth



As a shortcut you can also specify configuration data direct to the method.



    my $config = Badger::Config->new(
        name  => Arthur Dent,
        email => arthur@dent.org,
    );



You should avoid this usage if there is any possibility that your configuration data might contain the data or items items.

    get($name)

Method to retrieve a value from the configuration.



    my $name = $config->get(name);



This can also be used to fetch nested data. You can specify each element as a separate argument, or as a string delimited with any non-word characters. For example, given the following configuration data:



    my $config = Badger::Config->new(
        user => {
            name => {
                given  => Arthur,
                family => Dent,
            },
            email => [
                arthur@dent.org,
                dent@heart-of-gold.com,
            ],
        },
    );



You can then access data items using any of the following syntax:



    print $config->get(user, name, given);    # Arthur
    print $config->get(user.name.family);         # Dent
    print $config->get(user/email/0);             # arthur@dent.org
    print $config->get(user email 1);             # dent@heart-of-gold.com



In addition to accessing list and hash array items, the get() will call subroutine references and object methods, as shown in this somewhat contrived example:



    # a trivial object class
    package Example;
    use base Badger::Base;
   
    sub wibble {
        return wobble;
    }
   
    package main;

    # a config with a function that returns a hash containing an object
    my $config = Badger::Config->new(
        function => sub {
            return {
                object => Example->new(),
            }
        }
    );
    print $config->get(function.object.wibble);   # wobble



    set($name,$value)

Method to store a value in the configuration.



    $config->set( friend  => Ford Prefect );
    $config->set( friends => [Ford Prefect,Trillian,Marvin] );



At present this does not allow you to set nested data items in the way that the get() method does.

INTERNAL METHODS

    can_configure($name)

Internal method used to generate accessor methods on demand. This is installed using the auto_can hook in Badger::Class.

AUTHOR

Andy Wardley <http://wardley.org/>

COPYRIGHT

Copyright (C) 2001-2009 Andy Wardley. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 BADGER::CONFIG (3) 2010-02-20

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.