package CPANPLUS::Module::Fake;
use CPANPLUS::Error;
use CPANPLUS::Module;
use CPANPLUS::Module::Author::Fake;
use CPANPLUS::Internals;
use strict;
use vars qw[@ISA];
use Params::Check qw[check];
@ISA = qw[CPANPLUS::Module];
$Params::Check::VERBOSE = 1;
=pod
=head1 NAME
CPANPLUS::Module::Fake
=head1 SYNOPSIS
my $obj = CPANPLUS::Module::Fake->new(
module => 'Foo',
path => 'ftp/path/to/foo',
author => CPANPLUS::Module::Author::Fake->new,
package => 'fake-1.1.tgz',
_id => $cpan->_id,
);
=head1 DESCRIPTION
A class for creating fake module objects, for shortcut use internally
by CPANPLUS.
Inherits from C<CPANPLUS::Module>.
=head1 METHODS
=head2 new( module => $mod, path => $path, package => $pkg, [_id => DIGIT] )
Creates a dummy module object from the above parameters. It can
take more options (same as C<< CPANPLUS::Module->new >> but the above
are required.
=cut
sub new {
my $class = shift;
my %hash = @_;
local $Params::Check::ALLOW_UNKNOWN = 1;
my $tmpl = {
module => { required => 1 },
path => { required => 1 },
package => { required => 1 },
_id => { default => CPANPLUS::Internals->_last_id },
author => { default => '' },
};
my $args = check( $tmpl, \%hash ) or return;
$args->{author} ||= CPANPLUS::Module::Author::Fake->new(
_id => $args->{_id} );
my $obj = CPANPLUS::Module->new( %$args ) or return;
unless( $obj->_id ) {
error(loc("No '%1' specified -- No CPANPLUS object associated!",'_id'));
return;
}
### rebless object ###
return bless $obj, $class;
}
1;
# Local variables:
# c-indentation-style: bsd
# c-basic-offset: 4
# indent-tabs-mode: nil
# End:
# vim: expandtab shiftwidth=4:
Copyright 2K16 - 2K18 Indonesian Hacker Rulez