initial import
[catagits/Catalyst-Plugin-ConfigLoader.git] / lib / Catalyst / Plugin / ConfigLoader / INI.pm
CommitLineData
b2d85594 1package Catalyst::Plugin::ConfigLoader::INI;\r
2\r
3use strict;\r
4use warnings;\r
5\r
6=head1 NAME\r
7\r
8Catalyst::Plugin::ConfigLoader::INI - Load INI config files\r
9\r
10=head1 DESCRIPTION\r
11\r
12Loads INI files. Example:\r
13\r
14 name=TestApp\r
15 \r
16 [Controller::Config]\r
17 foo=bar\r
18\r
19=head1 METHODS\r
20\r
21=head2 load( $file )\r
22\r
23Attempts to load C<$file> as an INI file.\r
24\r
25=cut\r
26\r
27sub load {\r
28 my $class = shift;\r
29 my $confpath = shift;\r
30\r
31 my $file;\r
32 if( $confpath =~ /\.(.{3})$/ ) {\r
33 return unless $1 eq 'ini';\r
34 $file = $confpath;\r
35 }\r
36 else {\r
37 $file = "$confpath.ini";\r
38 }\r
39 \r
40 return unless -f $file;\r
41\r
42 require Config::Tiny;\r
43 my $config = Config::Tiny->read( $file );\r
44 my $main = delete $config->{ _ };\r
45 $config->{ $_ } = $main->{ $_ } for keys %$main;\r
46\r
47 return $config;\r
48}\r
49\r
50=head1 AUTHOR\r
51\r
52=over 4 \r
53\r
54=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>\r
55\r
56=back\r
57\r
58=head1 COPYRIGHT AND LICENSE\r
59\r
60Copyright 2006 by Brian Cassidy\r
61\r
62This library is free software; you can redistribute it and/or modify\r
63it under the same terms as Perl itself. \r
64\r
65=head1 SEE ALSO\r
66\r
67=over 4 \r
68\r
69=item * L<Catalyst>\r
70\r
71=back\r
72\r
73=cut\r
74\r
751;