pip
view release on metacpan or search on metacpan
lib/Module/Plan/Base.pm view on Meta::CPAN
# Constructor and Accessors
sub new {
my $class = shift;
my $self = bless { @_ }, $class;
# Create internal state variables
$self->{names} = [ ];
$self->{uris} = { };
$self->{dists} = { };
$self->{cpan_path} = { };
# Precalculate the various paths for the P5I file
$self->{p5i_uri} = $self->_p5i_uri( $self->p5i );
$self->{p5i_dir} = $self->_p5i_dir( $self->p5i_uri );
$self->{dir} = File::Temp::tempdir( CLEANUP => 1 );
# Check the no_inject option
$self->{no_inject} = !! $self->{no_inject};
# Create the CPAN injector
lib/Module/Plan/Base.pm view on Meta::CPAN
sub _cpan_inject {
my $self = shift;
my $name = shift;
my $file = $self->{dists}->{$name};
unless ( $file ) {
die("Unknown file $name");
}
# Inject the file into the CPAN cache
$self->{cpan_path}->{$name} = $self->inject->add( file => $file );
1;
}
sub _cpan_install {
my $self = shift;
my $name = shift;
my $distro = $self->{cpan_path}->{$name};
unless ( $distro ) {
die("Unknown file $name");
}
# Install via the CPAN::Shell
CPAN::Shell->install($distro);
}
sub _par_install {
my $self = shift;
( run in 0.427 second using v1.01-cache-2.11-cpan-f79bc02f770 )