Changeset 20990 for trunk/Nebulous-Server/lib/Nebulous/Server/Config.pm
- Timestamp:
- Dec 14, 2008, 12:54:25 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/lib/Nebulous/Server/Config.pm
r20965 r20990 1 1 # Copyright (C) 2005 Joshua Hoblitt 2 2 # 3 # $Id: Config.pm,v 1. 4 2008-12-12 21:13:41 jhoblittExp $3 # $Id: Config.pm,v 1.5 2008-12-14 22:54:25 eugene Exp $ 4 4 5 5 package Nebulous::Server::Config; … … 8 8 use warnings FATAL => qw( all ); 9 9 10 our $VERSION = 0.0 3;10 our $VERSION = 0.02; 11 11 12 12 use base qw( Class::Accessor::Fast ); 13 13 14 14 use Log::Log4perl qw( :levels ); 15 use Params::Validate qw( validate validate_posSCALAR );15 use Params::Validate qw( validate SCALAR ); 16 16 17 17 our %LEVELS = ( … … 25 25 ); 26 26 27 my $db_validate = { 28 dbindex => { 29 type => SCALAR, 30 regex => qr/^\d+$/, 31 }, 27 my $new_validate = { 32 28 dsn => { type => SCALAR }, 33 29 dbuser => { type => SCALAR }, 34 30 dbpasswd => { type => SCALAR }, 35 };36 37 my $new_validate = {38 31 log_level => { 39 32 type => SCALAR, … … 46 39 }, 47 40 }, 48 dsn => { type => SCALAR, optional => 1 },49 dbuser => { type => SCALAR, optional => 1 },50 dbpasswd => { type => SCALAR, optional => 1 },51 41 }; 52 42 53 43 __PACKAGE__->mk_ro_accessors( keys %$new_validate ); 54 44 55 56 sub new 57 { 45 sub init { 58 46 my $class = shift; 59 47 … … 61 49 62 50 # normalize log levels to lower-case 63 my $self ={ log_level => lc $p{ log_level } }; 51 $p{ log_level } = lc $p{ log_level }; 52 53 my $self = \%p; 64 54 65 55 bless $self, $class || ref $class; 66 67 my @dbs;68 $self->{dbs} = \@dbs;69 70 if (defined $p{dsn} or defined $p{dbuser} or defined $p{dbpasswd}) {71 $self->add_db(72 dbindex => 0,73 dsn => $p{dsn},74 dbuser => $p{dbuser},75 dbpasswd => $p{dbpasswd},76 );77 }78 56 79 57 return $self; 80 58 } 81 59 82 83 sub add_db84 {85 my $self = shift;86 87 my %p = validate( @_, $db_validate );88 89 my $config_db = Nebulous::Server::Config::DB->new({90 dsn => $p{dsn},91 dbuser => $p{dbuser},92 dbpasswd => $p{dbpasswd},93 });94 95 $self->{dbs}->[$p{dbindex}] = $config_db;96 97 return $self;98 }99 100 101 sub db102 {103 my $self = shift;104 105 my ($db_index) = validate_pos( @_, { type => SCALAR, optional => 1, });106 107 # default to 0108 $db_index ||= 0;109 110 return $self->{dbs}->[$db_index];111 }112 113 114 sub n_db115 {116 my $self = shift;117 118 return scalar @{ $self->{dbs} };119 }120 121 122 package Nebulous::Server::Config::DB;123 124 use strict;125 use warnings FATAL => qw( all );126 127 our $VERSION = 0.01;128 129 use base qw( Class::Accessor::Fast );130 131 __PACKAGE__->mk_ro_accessors(qw( dsn dbuser dbpasswd ));132 133 60 1; 134 61
Note:
See TracChangeset
for help on using the changeset viewer.
