require Config::General >= 2.47
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
index bae5fff..74776e2 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
@@ -48,6 +51,13 @@ sub load {
     $args->{ -ConfigFile } = $file;
 
     require Config::General;
+
+    if (Config::General->VERSION < 2.47) {
+        die "Config::General version 2.47 or greater required";
+    }
+
+    $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