df263da2e56be898c1fdfb5b96d03bb9fd3103dc
[catagits/Catalyst-Plugin-ConfigLoader.git] / lib / Catalyst / Plugin / ConfigLoader / INI.pm
1 package Catalyst::Plugin::ConfigLoader::INI;\r
2 \r
3 use strict;\r
4 use warnings;\r
5 \r
6 =head1 NAME\r
7 \r
8 Catalyst::Plugin::ConfigLoader::INI - Load INI config files\r
9 \r
10 =head1 DESCRIPTION\r
11 \r
12 Loads 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
23 Attempts to load C<$file> as an INI file.\r
24 \r
25 =cut\r
26 \r
27 sub 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
60 Copyright 2006 by Brian Cassidy\r
61 \r
62 This library is free software; you can redistribute it and/or modify\r
63 it 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
75 1;