App-MechaCPAN
view release on metacpan or search on metacpan
t/28_cpanfile.t view on Meta::CPAN
= tempdir( TEMPLATE => File::Spec->tmpdir . "/mechacpan_t_XXXXXXXX",
CLEANUP => 1 );
chdir $tmpdir;
my $dir = cwd;
my ( $fh, $cpanfile ) = tempfile( "cpanfile.XXXXXXXX", DIR => $tmpdir );
my @resolvd;
my @pkgs = qw/Try::Tiny Test::More/;
$fh->say("requires '$_';") foreach @pkgs;
$fh->seek( 0, 0 );
*App::MechaCPAN::Install::_resolve = sub
{
my $target = shift;
push @resolvd, $target->{src_name};
return;
};
# Check that it will handle with a filname
{
wanted => sub
{
my $file = $_;
if ( -f $file && $file =~ m/^[^.] .* [.]pm$/xms )
{
warn "Will include '$file' in '$ARGV[0]'\n";
my $filename = $File::Find::name;
$filename =~ s[^$prefix][]xms;
push @files, $filename;
$ouFH->say("BEGIN { \$INC{'$filename'} = __FILE__ };");
}
},
},
$prefix
);
foreach my $file (sort @files)
{
my $parser = Pod::Simple->new;
my $in_end;
$parser->cut_handler(
sub
{
my $line = shift;
my $line_number = shift;
my $parser = shift;
$ouFH->say(qq{# line $line_number "$file"})
unless $in_end;
}
);
$parser->code_handler(
sub
{
my $line = shift;
my $line_number = shift;
my $parser = shift;
$in_end = 1
if $line =~ m/^__END__/xms;
$ouFH->say($line)
unless $in_end;
}
);
$ouFH->say(qq{# line 1 "$file"});
$parser->parse_file("$prefix/$file");
}
open my $mc_fh, "<", "$FindBin::Bin/script/mechacpan";
$ouFH->say("package main;");
$ouFH->say(do { local $/; <$mc_fh> });
( run in 2.979 seconds using v1.01-cache-2.11-cpan-d7a12ab2c7f )