Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Badger::Config(3)     User Contributed Perl Documentation    Badger::Config(3)

NAME
       Badger::Config -	configuration module

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.

perl v5.32.0			  2016-12-12		     Badger::Config(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | INTERNAL METHODS | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Badger::Config&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help