Perl6-Pugs
view release on metacpan or search on metacpan
misc/sixpan/JIB/lib/JIB/Package.pm view on Meta::CPAN
package JIB::Package;
use strict;
use warnings;
use base 'Object::Accessor';
use JIB::Constants;
use JIB::Config;
use JIB::Package::Source;
use JIB::Package::Binary;
use JIB::Package::Installed;
use JIB::Package::Installable;
use File::Spec;
use File::Basename qw[basename];
use Params::Check qw[check];
use Log::Message::Simple qw[:STD];
use YAML qw[LoadFile];
use Data::Dumper;
$Data::Dumper::Indent = 1;
my $Package_re = qr/^(\w+) - # prefix
([\w-]+?) - # package name
([\d.]+) - # version
(\w+\+\S+) $ # authority
/smx;
=head1 NAME
JIB::Package
=head1 DESCRIPTION
Base class for:
JIB::Package::Source
JIB::Package::Binary
JIB::Package::Installed
=head1 ACCESSORS
=head2 package
Set the name of the full package package. For example:
p5-foo-1-cpan+kane
=head1 METHODS
=head2 $pkg = JIB::Package->new( file => /path/to/jib | meta => META_OBJ );
Returns a JIB::Package::Source on a jib file, and a JIB::Package::Installed
on a META_OBJ.
XXX needs verification
XXX needs binary package recognition
=cut
{ my $acc = {
file => { allow => FILE_EXISTS },
meta => { allow => ISA_JIB_META },
config => { allow => ISA_JIB_CONFIG },
package => { allow => $Package_re, no_override => 1 },
};
### acc is just for accessors, the others get added for our
### param checking too
my $tmpl = {
%$acc,
installation => { allow => ISA_JIB_INSTALLATION },
repository => { allow => ISA_JIB_REPOSITORY },
};
sub new {
( run in 1.110 second using v1.01-cache-2.11-cpan-e1769b4cff6 )