use URI;
use Carp qw/croak/;
use Cwd;
-use Class::MOP;
+use Class::Load 'is_class_loaded';
use String::RewritePrefix;
use namespace::clean;
Returns home directory for given class.
+=head2 dist_indicator_file_list
+
+Returns a list of files which can be tested to check if you're inside
+a CPAN distribution which is not yet installed.
+
+These are:
+
+=over
+
+=item Makefile.PL
+
+=item Build.PL
+
+=item dist.ini
+
+=item L<cpanfile>
+
+=back
+
=cut
+sub dist_indicator_file_list {
+ qw{Makefile.PL Build.PL dist.ini cpanfile};
+}
+
sub home {
my $class = shift;
$home = $home->parent while $home =~ /b?lib$/;
# only return the dir if it has a Makefile.PL or Build.PL or dist.ini
- if (-f $home->file("Makefile.PL") or -f $home->file("Build.PL")
- or -f $home->file("dist.ini")) {
-
+ if (grep { -f $home->file($_) } dist_indicator_file_list()) {
# clean up relative path:
# MyApp/script/.. -> MyApp
# if it already has symbol table entries. This is to support things like Schema::Loader, which
# part-generate classes in memory, but then also load some of their contents from disk.
return if !$opts->{ ignore_loaded }
- && Class::MOP::is_class_loaded($class); # if a symbol entry exists we don't load again
+ && is_class_loaded($class); # if a symbol entry exists we don't load again
# this hack is so we don't overwrite $@ if the load did not generate an error
my $error;
die $error if $error;
warn "require $class was successful but the package is not defined."
- unless Class::MOP::is_class_loaded($class);
+ unless is_class_loaded($class);
return 1;
}