moved qdb here because matt is lazy
[public/www-new.git] / pub / qdb / src / modules / Chirpy / Configuration.pm
1 ###############################################################################\r
2 # Chirpy! 0.3, a quote management system                                      #\r
3 # Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net>          #\r
4 ###############################################################################\r
5 # This program is free software; you can redistribute it and/or modify it     #\r
6 # under the terms of the GNU General Public License as published by the Free  #\r
7 # Software Foundation; either version 2 of the License, or (at your option)   #\r
8 # any later version.                                                          #\r
9 #                                                                             #\r
10 # This program is distributed in the hope that it will be useful, but WITHOUT #\r
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       #\r
12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for   #\r
13 # more details.                                                               #\r
14 #                                                                             #\r
15 # You should have received a copy of the GNU General Public License along     #\r
16 # with this program; if not, write to the Free Software Foundation, Inc., 51  #\r
17 # Franklin St, Fifth Floor, Boston, MA  02110-1301  USA                       #\r
18 ###############################################################################\r
19 \r
20 ###############################################################################\r
21 # $Id:: Configuration.pm 291 2007-02-05 21:24:46Z ceetee                    $ #\r
22 ###############################################################################\r
23 \r
24 =head1 NAME\r
25 \r
26 Chirpy::Configuration - Represents a configuration\r
27 \r
28 =head1 SYNOPSIS\r
29 \r
30  $configuration = new Chirpy::Configuration('/path/to/chirpy.ini');\r
31 \r
32  $value = $configuration->get($section, $name);\r
33 \r
34  $hash_ref = $configuration->get_parameter_hash($section);\r
35 \r
36 =head1 AUTHOR\r
37 \r
38 Tim De Pauw E<lt>ceetee@users.sourceforge.netE<gt>\r
39 \r
40 =head1 SEE ALSO\r
41 \r
42 L<Chirpy::Util::IniFile>, L<Chirpy>,\r
43 L<http://chirpy.sourceforge.net/>\r
44 \r
45 =head1 COPYRIGHT\r
46 \r
47 Copyright 2005-2007 Tim De Pauw. All rights reserved.\r
48 \r
49 This program is free software; you can redistribute it and/or modify it under\r
50 the terms of the GNU General Public License as published by the Free Software\r
51 Foundation; either version 2 of the License, or (at your option) any later\r
52 version.\r
53 \r
54 This program is distributed in the hope that it will be useful, but WITHOUT ANY\r
55 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\r
56 PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r
57 \r
58 =cut\r
59 \r
60 package Chirpy::Configuration;\r
61 \r
62 use strict;\r
63 use warnings;\r
64 \r
65 use vars qw($VERSION @ISA);\r
66 \r
67 $VERSION = '0.3';\r
68 @ISA = qw(Chirpy::Util::IniFile);\r
69 \r
70 use Chirpy 0.3;\r
71 use Chirpy::Util::IniFile 0.3;\r
72 \r
73 sub new {\r
74         my ($class, $file) = @_;\r
75         return $class->SUPER::new($file || 'chirpy.ini');\r
76 }\r
77 \r
78 sub get_parameter_hash {\r
79         my ($self, $level1, $level2) = @_;\r
80         my $level1_hash = $self->get($level1);\r
81         return undef unless ($level1_hash);\r
82         my %hash = ();\r
83         my $e = quotemeta lc $level2;\r
84         while (my ($key, $value) = each %$level1_hash) {\r
85                 next unless ($key =~ s/^$e\.//);\r
86                 $hash{$key} = $value;\r
87         }\r
88         return \%hash;\r
89 }\r
90 \r
91 1;\r
92 \r
93 ###############################################################################