File Coverage

blib/lib/Mail/IMAP/Envelope.pm
Criterion Covered Total %
statement 29 29 100.0
branch 3 4 75.0
condition n/a
subroutine 12 12 100.0
pod 2 3 66.6
total 46 48 95.8


line stmt bran cond sub pod time code
1             package Mail::IMAP::Envelope;
2 1     1   22752 use strict;
  1         3  
  1         43  
3 1     1   9 use warnings;
  1         1  
  1         31  
4 1     1   5 use utf8;
  1         2  
  1         13  
5 1     1   1065 use Encode ();
  1         17418  
  1         30  
6 1     1   650 use Mail::IMAP::Address;
  1         3  
  1         45  
7              
8             use constant {
9 1         370 DATE => 0,
10             SUBJECT => 1,
11             FROM => 2,
12             SENDER => 3,
13             REPLY_TO => 4,
14             TO => 5,
15             CC => 6,
16             BCC => 7,
17             IN_REPLY_TO => 8,
18             MESSAGE_TO => 9,
19 1     1   8 };
  1         1  
20              
21             sub new {
22 1     1 0 32 my ($class, $envelope) = @_;
23 1         6 return bless $envelope, $class;
24             }
25              
26             sub _decode {
27 1 50   1   8 defined($_[0]) ? Encode::decode('MIME-Header', $_[0]) : '';
28             }
29              
30 1     1 1 4 sub subject { _decode($_[0]->[SUBJECT]) }
31 1     1 1 18 sub date { $_[0]->[DATE] }
32             for (qw(FROM SENDER REPLY_TO TO CC BCC)) {
33 1     1   6 no strict 'refs';
  1         2  
  1         169  
34             my $idx = __PACKAGE__->can($_)->();
35 6 100   6   8177 *{__PACKAGE__ . '::' . lc($_)} = sub { [map { Mail::IMAP::Address->new($_) } @{$_[0]->[$idx]||[]}] };
  5         22  
  6         37  
36             }
37              
38             1;
39             __END__