tidy C::G related code, plus remove an old work-around which has been inactive for...
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
1 package Config::Any::General;
2
3 use strict;
4 use warnings;
5 use Carp;
6
7 use base 'Config::Any::Base';
8
9 =head1 NAME
10
11 Config::Any::General - Load Config::General files
12
13 =head1 DESCRIPTION
14
15 Loads Config::General files. Example:
16
17     name = TestApp
18     <Component Controller::Foo>
19         foo bar
20         bar [ arrayref-value ]
21     </Component>
22     <Model Baz>
23         qux xyzzy
24     </Model>
25
26 =head1 METHODS
27
28 =head2 extensions( )
29
30 return an array of valid extensions (C<cnf>, C<conf>).
31
32 =cut
33
34 sub extensions {
35     return qw( cnf conf );
36 }
37
38 =head2 load( $file )
39
40 Attempts to load C<$file> via Config::General.
41
42 =cut
43
44 sub load {
45     my $class = shift;
46     my $file  = shift;
47     my $args  = shift || {};
48
49     $args->{ -ConfigFile } = $file;
50
51     require Config::General;
52     Config::General->VERSION( '2.47' );
53
54     $args->{ -ForceArray } = 1 unless exists $args->{ -ForceArray };
55
56     my $configfile = Config::General->new( %$args );
57     my $config     = { $configfile->getall };
58
59     return $config;
60 }
61
62 =head2 requires_all_of( )
63
64 Specifies that this module requires L<Config::General> in order to work.
65
66 =cut
67
68 sub requires_all_of { [ 'Config::General' ] }
69
70 =head1 AUTHOR
71
72 Brian Cassidy E<lt>bricas@cpan.orgE<gt>
73
74 =head1 CONTRIBUTORS
75
76 Joel Bernstein E<lt>rataxis@cpan.orgE<gt>
77
78 =head1 COPYRIGHT AND LICENSE
79
80 Copyright 2006-2010 by Brian Cassidy
81
82 Portions Copyright 2006 Portugal Telecom
83
84 This library is free software; you can redistribute it and/or modify
85 it under the same terms as Perl itself. 
86
87 =head1 SEE ALSO
88
89 =over 4 
90
91 =item * L<Catalyst>
92
93 =item * L<Config::Any>
94
95 =item * L<Config::General>
96
97 =back
98
99 =cut
100
101 1;