croak if Config::General is too old
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
index bae5fff..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,6 +78,14 @@ sub _test_perl {
     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' ] }
+
 =head1 AUTHOR
 
 Brian Cassidy E<lt>bricas@cpan.orgE<gt>
@@ -78,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