enable -ForceArray option by default for Config::General
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
index 975bff6..936bb44 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
@@ -43,14 +46,16 @@ sub load {
     my $args  = shift || {};
 
     # work around bug (?) in Config::General
-#   return if $class->_test_perl($file);
+    #   return if $class->_test_perl($file);
+
+    $args->{ -ConfigFile } = $file;
 
-    $args->{-ConfigFile} = $file;
+    $args->{ -ForceArray } = 1 unless exists $args->{ -ForceArray };
 
     require Config::General;
     my $configfile = Config::General->new( %$args );
     my $config     = { $configfile->getall };
-    
+
     return $config;
 }
 
@@ -61,32 +66,32 @@ sub load {
 # developer.
 
 sub _test_perl {
-    my ($class, $file) = @_;
+    my ( $class, $file ) = @_;
     my $is_perl_src;
     eval { $is_perl_src = do "$file"; };
-    delete $INC{$file}; # so we don't screw stuff later on
+    delete $INC{ $file };    # so we don't screw stuff later on
     return defined $is_perl_src;
 }
 
-=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 C<< <rataxis@cpan.org> >>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006 by Brian Cassidy
+Copyright 2006-2010 by Brian Cassidy
 
 Portions Copyright 2006 Portugal Telecom