/[webpac2]/trunk/lib/WebPAC/Config.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/WebPAC/Config.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 682 - (show annotations)
Sun Sep 24 15:28:54 2006 UTC (17 years, 7 months ago) by dpavlin
File size: 2385 byte(s)
 r958@llin:  dpavlin | 2006-09-24 17:26:37 +0200
 added $config->get and $config->webpac

1 package WebPAC::Config;
2
3 use warnings;
4 use strict;
5
6 use base qw/WebPAC::Common/;
7
8 use Data::Dump qw/dump/;
9 use YAML qw/LoadFile/;
10
11 =head1 NAME
12
13 WebPAC::Config - handle WebPAC configuration file
14
15 =head1 VERSION
16
17 Version 0.01
18
19 =cut
20
21 our $VERSION = '0.01';
22
23 =head1 SYNOPSIS
24
25 FIXME
26
27 =head1 FUNCTIONS
28
29 =head2 new
30
31 Create new configuration object.
32
33 =cut
34
35 sub new {
36 my $class = shift;
37 my $self = {@_};
38 bless($self, $class);
39
40 my $log = $self->_get_logger();
41
42 if (! $self->{path}) {
43 my $hostname = `hostname`;
44 chomp($hostname);
45 $hostname =~ s/\..+$//;
46 if (-e "conf/$hostname.yml") {
47 $self->{path} = "conf/$hostname.yml";
48 $log->info("using host configuration file: ", $self->{path});
49 }
50 }
51
52 $self->{path} ||= 'conf/config.yml';
53
54 $self->{config} = LoadFile($self->{path}) ||
55 $log->logdie("can't open ",$self->{path}, ": $!");
56
57 $log->debug("config: ", dump( $self->{config} ));
58
59 $self ? return $self : return undef;
60 }
61
62 =head2 databases
63
64 my $config_databases_hash = $config->databases;
65 my @config_databases_names = $config->databases;
66
67 =cut
68
69 sub databases {
70 my $self = shift;
71 return unless ($self->{config});
72 if (wantarray) {
73 return keys %{ $self->{config}->{databases} };
74 } else {
75 return $self->{config}->{databases};
76 }
77 }
78
79 =head2 use_indexer
80
81 $config->use_indexer;
82
83 =cut
84
85 sub use_indexer {
86 my $self = shift;
87 my $default = 'hyperestraier';
88 return unless ($self->{config});
89 return $self->{config}->{use_indexer} || $default;
90 }
91
92 =head2 get
93
94 $config->get('top-level_key');
95
96 =cut
97
98 sub get {
99 my $self = shift;
100 my $what = shift || return;
101 return $self->{config}->{$what};
102 }
103
104 =head2 webpac
105
106 Return C<< config -> webpac >> parts
107
108 my @supported_inputs = $config->webpac('inputs');
109 my $inputs_hash = $config->webpac('inputs');
110
111 =cut
112
113 sub webpac {
114 my $self = shift;
115
116 $self->_get_logger()->logdie("can't find config->webpac") unless defined( $self->{config}->{webpac} );
117
118 my $what = shift || return $self->{config}->{webpac};
119
120 if (wantarray) {
121 return keys %{ $self->{config}->{webpac}->{$what} };
122 } else {
123 return $self->{config}->{webpac}->{$what};
124 }
125
126 }
127
128 =head1 AUTHOR
129
130 Dobrica Pavlinusic, C<< <dpavlin@rot13.org> >>
131
132 =head1 COPYRIGHT & LICENSE
133
134 Copyright 2006 Dobrica Pavlinusic, All Rights Reserved.
135
136 This program is free software; you can redistribute it and/or modify it
137 under the same terms as Perl itself.
138
139 =cut
140
141 1; # End of WebPAC::Config

  ViewVC Help
Powered by ViewVC 1.1.26