/usr/local/CPAN/Perl-Dist/Perl/Dist/Asset/Module.pm
package Perl::Dist::Asset::Module;
use strict;
use Carp 'croak';
use Params::Util qw{ _STRING _HASH };
use vars qw{$VERSION};
BEGIN {
$VERSION = '1.16';
}
use Object::Tiny qw{
name
type
force
extras
};
#####################################################################
# Constructor
sub new {
my $self = shift->SUPER::new(@_);
# Apply defaults
$self->{force} = $self->force ? 1 : 0; # Needs to be numeric
# Check params
unless ( _STRING($self->name) ) {
croak("Missing or invalid name param");
}
return $self;
}
#####################################################################
# Support Methods
sub trace {
my $self = shift;
if ( _CODELIKE($self->{trace}) ) {
$self->{trace}->(@_);
} else {
print $_[0];
}
}
1;