reformat Changes. bump copyright year.
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
index 975bff6..38b03d3 100644 (file)
@@ -3,6 +3,8 @@ package Config::Any::General;
 use strict;
 use warnings;
 
+use base 'Config::Any::Base';
+
 =head1 NAME
 
 Config::Any::General - Load Config::General files
@@ -14,6 +16,7 @@ Loads Config::General files. Example:
     name = TestApp
     <Component Controller::Foo>
         foo bar
+        bar [ arrayref-value ]
     </Component>
     <Model Baz>
         qux xyzzy
@@ -42,51 +45,38 @@ sub load {
     my $file  = shift;
     my $args  = shift || {};
 
-    # work around bug (?) in Config::General
-#   return if $class->_test_perl($file);
-
-    $args->{-ConfigFile} = $file;
+    $args->{ -ConfigFile } = $file;
 
     require Config::General;
+    Config::General->VERSION( '2.47' );
+
+    $args->{ -ForceArray } = 1 unless exists $args->{ -ForceArray };
+
     my $configfile = Config::General->new( %$args );
     my $config     = { $configfile->getall };
-    
-    return $config;
-}
 
-# this is a bit of a hack but necessary, because Config::General is *far* too lax
-# about what it will load -- specifically, it seems to be quite happy to load a Perl
-# config file (ie, a file which is valid Perl and creates a hashref) as if it were
-# an Apache-style configuration file, presumably due to laziness on the part of the
-# developer.
-
-sub _test_perl {
-    my ($class, $file) = @_;
-    my $is_perl_src;
-    eval { $is_perl_src = do "$file"; };
-    delete $INC{$file}; # so we don't screw stuff later on
-    return defined $is_perl_src;
+    return $config;
 }
 
-=head1 AUTHOR
+=head2 requires_all_of( )
 
-=over 4 
+Specifies that this module requires L<Config::General> in order to work.
 
-=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>
+=cut
 
-=back
+sub requires_all_of { [ 'Config::General' ] }
 
-=head1 CONTRIBUTORS
+=head1 AUTHOR
 
-=over 4
+Brian Cassidy E<lt>bricas@cpan.orgE<gt>
 
-=item * Joel Bernstein C<< <rataxis@cpan.org> >>
+=head1 CONTRIBUTORS
 
-=back
+Joel Bernstein E<lt>rataxis@cpan.orgE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006 by Brian Cassidy
+Copyright 2006-2011 by Brian Cassidy
 
 Portions Copyright 2006 Portugal Telecom
 
@@ -108,4 +98,3 @@ it under the same terms as Perl itself.
 =cut
 
 1;
-