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  -  CLASS::DATA::CONFIGHASH (3)

.ds Aq ’

NAME

Class::Data::ConfigHash - Add Catalyst-Style Config To Your Class

CONTENTS

NAME



  package MyClass;
  use base qw(Class::Data::ConfigHash);

  __PACKAGE__->config(
    foo => bar
  );



DESCRIPTION

I often times find myself wanting a per-class config that can be used to provide sane class-level defaults, but with the ability to easily customize the values at run time.



  package MyClass;
  __PACKAGE__->config({
    foo => 1,
    bar => 2
  });

  # Later, in perhaps an initialize hook somewhere
  my %config = read_config_from_file() ; # say, %config = ( foo => 3 )
  MyClass->config(\%config);

  MyClass->config->{foo}; # yields 3
  MyClass->config->{bar}; # yields 2



The idea is that you can hardcode the defaults in your class, but you can also easily override them by merging the original hash with a newly given hash. This feature is handled beautifully in Catalyst.

So there, this module is basically that feature from Catalyst ripped out to a separate module so it can be used elsewhere.

To use, simply subclass it in your module:



  package MyClass;
  use base qw(Class::Data::ConfigHash);



Done! Now you can use ->config in MyClass.

METHODS

    config([\%hash])

Accessor for the underlying config.



  # set
  $class->config(\%hash);
  $class->config->{whatever} = foo;

  # get
  $class->config->{whatever};



If given a hashref argument, the values in the hashref are merged with whatever values that existed prior to that. This merge is performed recursively to the entire hash.

    merge_config_hashes(\%lefthash, \%righthash)

Merges the two config hashes.

CREDITS

Sebastian Riedel, Marcus Ramberg, Matt S Trout wrote the code.

AUTHOR

Daisuke Maki <daisuke@endeworks.jp> - Stole the code from Catalyst and repackaged it

LICENSE

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

See http://www.perl.com/perl/misc/Artistic.html

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


perl v5.20.3 CLASS::DATA::CONFIGHASH (3) 2008-08-27

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