File Coverage

blib/lib/Mail/Box/IMAP4/Head.pm
Criterion Covered Total %
statement 12 28 42.8
branch 0 14 0.0
condition 0 3 0.0
subroutine 4 6 66.6
pod 1 2 50.0
total 17 53 32.0


line stmt bran cond sub pod time code
1             # This code is part of Perl distribution Mail-Box-IMAP4 version 4.01.
2             # The POD got stripped from this file by OODoc version 3.05.
3             # For contributors see file ChangeLog.
4              
5             # This software is copyright (c) 2001-2025 by Mark Overmeer.
6              
7             # This is free software; you can redistribute it and/or modify it under
8             # the same terms as the Perl 5 programming language system itself.
9             # SPDX-License-Identifier: Artistic-1.0-Perl OR GPL-1.0-or-later
10              
11              
12             package Mail::Box::IMAP4::Head;{
13             our $VERSION = '4.01';
14             }
15              
16 3     3   2288 use base 'Mail::Message::Head';
  3         9  
  3         457  
17              
18 3     3   22 use warnings;
  3         6  
  3         165  
19 3     3   15 use strict;
  3         4  
  3         91  
20              
21 3     3   14 use Log::Report 'mail-box-imap4', import => [];
  3         7  
  3         25  
22              
23             #--------------------
24              
25             sub init($$)
26 0     0 0   { my ($self, $args) = @_;
27 0           $self->SUPER::init($args);
28              
29 0           $self->{MBIH_c_fields} = $args->{cache_fields};
30 0           $self;
31             }
32              
33              
34             sub get($;$)
35 0     0 1   { my ($self, $name, $index) = @_;
36              
37 0 0         if(not $self->{MBIH_c_fields}) { ; }
    0          
38             elsif(wantarray)
39 0           { my @values = $self->SUPER::get(@_);
40 0 0         return @values if @values;
41             }
42             else
43 0           { my $value = $self->SUPER::get(@_);
44 0 0         return $value if defined $value;
45             }
46              
47             # Something here, playing with ENVELOPE, may improve the performance
48             # as well.
49 0           my $imap = $self->message->folder->transporter;
50 0           my $uidl = $self->message->unique;
51 0           my @fields = $imap->getFields($uidl, $name);
52              
53 0 0 0       if(@fields && $self->{MBIH_c_fields})
54 0           { $self->addNoRealize($_) for @fields
55             }
56              
57 0 0         defined $index ? $fields[$index] : wantarray ? @fields : $fields[0];
    0          
58             }
59              
60             sub guessBodySize() {undef}
61             sub guessTimestamp() {undef}
62              
63             #--------------------
64              
65             1;