File Coverage

lib/Mail/TempAddress/Addresses.pm
Criterion Covered Total %
statement 24 24 100.0
branch n/a
condition 4 6 66.6
subroutine 9 9 100.0
pod 5 5 100.0
total 42 44 95.4


line stmt bran cond sub pod time code
1             package Mail::TempAddress::Addresses;
2              
3 2     2   51840 use strict;
  2         5  
  2         101  
4 2     2   12 use base 'Mail::Action::Storage';
  2         2  
  2         1811  
5              
6 2     2   32586 use Mail::TempAddress::Address;
  2         4  
  2         54  
7 2     2   10 use File::Spec;
  2         3  
  2         562  
8              
9             sub new
10             {
11 14     14 1 18373 my ($class, $directory) = @_;
12 14   66     84 $directory ||= File::Spec->catdir( $ENV{HOME}, '.addresses' );
13 14         105 $class->SUPER::new( $directory );
14             }
15              
16             sub stored_class
17             {
18 10     10 1 1137 'Mail::TempAddress::Address';
19             }
20              
21             sub storage_extension
22             {
23 39     39 1 29257 'mta'
24             }
25              
26             sub generate_address
27             {
28 6     6 1 2368 my ($self, $id) = @_;
29              
30 6   66     81 $id ||= sprintf '%x', reverse scalar time;
31              
32 6         31 while ($self->exists( $id ))
33             {
34 3         129 $id = sprintf '%x', ( reverse ( time() + rand($$) ));
35             }
36              
37 6         24 return $id;
38             }
39              
40             sub create
41             {
42 4     4 1 1146 my ($self, $from_address) = @_;
43 4         36 Mail::TempAddress::Address->new( owner => $from_address );
44             }
45              
46             1;
47             __END__