package Perl::Dist::Asset::Perl;
# Perl::Dist asset for the Perl source code itself
use strict;
use Carp ();
use Params::Util ();
use Perl::Dist::Asset ();
use vars qw{$VERSION @ISA};
BEGIN {
$VERSION = '1.16';
@ISA = 'Perl::Dist::Asset';
}
use Object::Tiny qw{
name
force
license
unpack_to
install_to
patch
};
#####################################################################
# Constructor
sub new {
my $self = shift->SUPER::new(@_);
# Apply defaults
$self->{unpack_to} = '' unless defined $self->unpack_to;
# Check params
unless ( Params::Util::_STRING($self->name) ) {
Carp::croak("Missing or invalid name param");
}
unless ( Params::Util::_HASH($self->license) ) {
Carp::croak("Missing or invalid license param");
}
unless ( defined $self->unpack_to and ! ref $self->unpack_to ) {
Carp::croak("Missing or invalid unpack_to param");
}
unless ( Params::Util::_STRING($self->install_to) ) {
Carp::croak("Missing or invalid install_to param");
}
if ( $self->patch and ! Params::Util::_ARRAY($self->patch) ) {
Carp::croak("Invalid patch param");
}
$self->{force} = !! $self->force;
return $self;
}
1;