Perl6-Pugs
view release on metacpan or search on metacpan
misc/sixpan/JIB/lib/JIB/Package/Installed.pm view on Meta::CPAN
package JIB::Package::Installed;
use strict;
use warnings;
use base 'JIB::Package';
use JIB::Constants;
use JIB::Config;
use JIB::Installation;
use File::Spec;
use File::Basename qw[basename];
use Params::Check qw[check];
use Log::Message::Simple qw[:STD];
use YAML qw[LoadFile];
### only called form JIB::Package
sub new {
my $self = shift;
my $conf = $self->config;
my %hash = @_;
my $meta; my $inst;
my $tmpl = {
meta => {
required => 1,
store => \$meta,
allow => ISA_JIB_META,
},
installation => {
required => 1,
store => \$inst,
allow => ISA_JIB_INSTALLATION ,
},
};
my $args = check( $tmpl, \%hash )
or error( Params::Check->last_error ), return;
$self->mk_accessors( qw[files alternative installation] );
while( my($acc,$val) = each %$args ) {
$self->$acc( $val );
}
$self->package( $self->meta->package );
### XXX flesh out this format better
{ my @files = eval {
### XXX CONFIG!!!!
my $file = $inst->files_list( $meta->package );
open my $fh, $file or die "Could not open '$file': $!";
map { chomp; $_ } <$fh>;
};
$@ and error( "Could not load files list: $@" ), return;
$self->files( \@files );
my ($alt) = grep { $_->package eq $meta->package }
@{ $inst->registered_alternatives };
$self->alternative( $alt );
}
return $self;
}
=head2 $files = $pkg->files
Returns an arrayref of files installed by this package
=head2 $alt = $pkg->alternative
Returns the JIB::Alternative object, if this package is a registered alternative
( run in 1.142 second using v1.01-cache-2.11-cpan-df04353d9ac )