croak if Config::General is too old
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
index 6aceb98..d16cf59 100644 (file)
@@ -2,6 +2,9 @@ package Config::Any::General;
 
 use strict;
 use warnings;
+use Carp;
+
+use base 'Config::Any::Base';
 
 =head1 NAME
 
@@ -14,6 +17,7 @@ Loads Config::General files. Example:
     name = TestApp
     <Component Controller::Foo>
         foo bar
+        bar [ arrayref-value ]
     </Component>
     <Model Baz>
         qux xyzzy
@@ -48,6 +52,12 @@ sub load {
     $args->{ -ConfigFile } = $file;
 
     require Config::General;
+
+    croak "Config::General 2.47 or later required"
+        unless Config::General->VERSION('2.47');
+
+    $args->{ -ForceArray } = 1 unless exists $args->{ -ForceArray };
+
     my $configfile = Config::General->new( %$args );
     my $config     = { $configfile->getall };
 
@@ -68,16 +78,13 @@ sub _test_perl {
     return defined $is_perl_src;
 }
 
-=head2 is_supported( )
+=head2 requires_all_of( )
 
-Returns true if L<Config::General> is available.
+Specifies that this module requires L<Config::General> in order to work.
 
 =cut
 
-sub is_supported {
-    eval { require Config::General; };
-    return $@ ? 0 : 1;
-}
+sub requires_all_of { [ 'Config::General' ] }
 
 =head1 AUTHOR
 
@@ -89,7 +96,7 @@ Joel Bernstein C<< <rataxis@cpan.org> >>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2007 by Brian Cassidy
+Copyright 2006-2010 by Brian Cassidy
 
 Portions Copyright 2006 Portugal Telecom