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;
}
# 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