changes file updated
[p5sagit/Config-Any.git] / lib / Config / Any / General.pm
index 76b04a9..6aceb98 100644 (file)
@@ -40,14 +40,17 @@ Attempts to load C<$file> via Config::General.
 sub load {
     my $class = shift;
     my $file  = shift;
+    my $args  = shift || {};
 
     # work around bug (?) in Config::General
-#   return if $class->_test_perl($file);
+    #   return if $class->_test_perl($file);
+
+    $args->{ -ConfigFile } = $file;
 
     require Config::General;
-    my $configfile = Config::General->new( $file );
+    my $configfile = Config::General->new( %$args );
     my $config     = { $configfile->getall };
-    
+
     return $config;
 }
 
@@ -58,32 +61,35 @@ 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 is_supported( )
 
-=over 4 
+Returns true if L<Config::General> is available.
 
-=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>
+=cut
 
-=back
+sub is_supported {
+    eval { require Config::General; };
+    return $@ ? 0 : 1;
+}
 
-=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 2007 by Brian Cassidy
 
 Portions Copyright 2006 Portugal Telecom