prep release
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
index c5de65c..6184ea1 100644 (file)
@@ -16,6 +16,7 @@ Loads Config::General files. Example:
     name = TestApp
     <Component Controller::Foo>
         foo bar
+        bar [ arrayref-value ]
     </Component>
     <Model Baz>
         qux xyzzy
@@ -44,39 +45,26 @@ sub load {
     my $file  = shift;
     my $args  = shift || {};
 
-    # work around bug (?) in Config::General
-    #   return if $class->_test_perl($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;
-}
-
 =head2 requires_all_of( )
 
 Specifies that this module requires L<Config::General> in order to work.
 
 =cut
 
-sub requires_all_of { 'Config::General' }
+sub requires_all_of { [ 'Config::General' ] }
 
 =head1 AUTHOR
 
@@ -84,11 +72,11 @@ Brian Cassidy E<lt>bricas@cpan.orgE<gt>
 
 =head1 CONTRIBUTORS
 
-Joel Bernstein C<< <rataxis@cpan.org> >>
+Joel Bernstein E<lt>rataxis@cpan.orgE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006-2010 by Brian Cassidy
+Copyright 2006-2016 by Brian Cassidy
 
 Portions Copyright 2006 Portugal Telecom
 
@@ -110,4 +98,3 @@ it under the same terms as Perl itself.
 =cut
 
 1;
-