Perl6-Pugs
view release on metacpan or search on metacpan
misc/sixpan/JIB/lib/JIB/Package/Source.pm view on Meta::CPAN
package JIB::Package::Source;
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];
use Path::Class ();
use Data::Dumper;
$Data::Dumper::Indent = 1;
### only called from JIB::Package
sub new {
my $self = shift;
my %hash = @_;
my $file; my $meta;
my $tmpl = {
file => { required => 1, allow => FILE_EXISTS, store => \$file },
meta => { store => \$meta, allow => ISA_JIB_META },
};
my $args = check( $tmpl, \%hash )
or error( Params::Check->last_error ), return;
### make it a P::C item
$args->{file} = Path::Class::file( $file );
while( my($acc,$val) = each %$args ) {
$self->$acc( $val );
}
unless( $meta or $meta = $self->extract_meta_object ) {
return;
}
$self->package( $self->meta->package );
return $self;
}
=head2 $path = $pkg->file
Location of the source package
=head2 $meta = $pkg->meta
The JIB::Meta object associated with this package
=head2 $pkg->install( installation => INSTALLATION_OBJECT )
=cut
### XXX perl-ify
sub install {
my $self = shift;
my $conf = $self->config;
my %hash = @_;
my $inst;
my $tmpl = {
installation => {
required => 1, store => \$inst,
allow => sub { UNIVERSAL::isa( shift(), 'JIB::Installation' ) } },
};
( run in 3.346 seconds using v1.01-cache-2.11-cpan-98e64b0badf )