1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
package CPANPLUS::Module::Fake;
use deprecate;
use CPANPLUS::Error;
use CPANPLUS::Module;
use CPANPLUS::Module::Author::Fake;
use CPANPLUS::Internals;
use strict;
use vars qw[@ISA $VERSION];
use Params::Check qw[check];
$VERSION = "0.9135";
@ISA = qw[CPANPLUS::Module];
$Params::Check::VERBOSE = 1;
=pod
=head1 NAME
CPANPLUS::Module::Fake - fake module object for internal use
=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:
|