blob: daa9de3343b51b6002cd7839cff776d8b97d907d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
package FixMyStreet;
use strict;
use warnings;
use Path::Class;
my $ROOT_DIR = file(__FILE__)->parent->parent->absolute->resolve;
use Readonly;
use mySociety::Config;
# load the config file and store the contents in a readonly hash
mySociety::Config::set_file( __PACKAGE__->path_to("conf/general") );
Readonly::Hash my %CONFIG, %{ mySociety::Config::get_list() };
=head1 NAME
FixMyStreet
=head1 DESCRIPTION
FixMyStreet is a webite where you can report issues and have them routed to the
correct authority so that they can be fixed.
Thus module has utility functions for the FMS project.
=head1 METHODS
=head2 path_to
$path = FixMyStreet->path_to( 'conf/general' );
Returns an absolute Path::Class object representing the path to the arguments in
the FixMyStreet directory.
=cut
sub path_to {
my $class = shift;
return $ROOT_DIR->file(@_);
}
=head2 config
my $config_hash_ref = FixMyStreet->config();
my $config_value = FixMyStreet->config($key);
Returns a hashref to the config values. This is readonly so any attempt to
change it will fail.
Or you can pass it a key and it will return the value for that key, or undef if
it can't find it.
=cut
sub config {
my $class = shift;
return \%CONFIG unless scalar @_;
my $key = shift;
return exists $CONFIG{$key} ? $CONFIG{$key} : undef;
}
1;
|