NAME
Mail::Thread::Chronological - rearrange Mail::Thread::Containers into a Chronological structure
SYNOPSIS
use
Mail::Thread;
my
$threader
= Mail::Thread->new(
@messages
);
my
$lurker
= Mail::Thread::Chronological->new;
$threader
->thread;
for
my
$thread
(
$threader
->rootset) {
for
my
$row
(
$lurker
->arrange(
$thread
) ) {
my
$container
=
grep
{
ref
$_
}
@$row
;
join
(
''
,
map
{
ref
$_
?
'*'
:
$_
}
@$row
),
" "
,
$container
->messageid,
"\n"
;
}
}
DESCRIPTION
Given a Mail::Thread::Container, Mail::Thread::Chronological transforms the tree structure into a 2-dimensional array representing the history of a given thread in time.
The output is similar to that of the Lurker mail archiving system, with a couple of small exceptions:
- Characters used
-
The grid is populated with the characters ' ' (space), '-', '+', '|', '{', or Mail::Thread::Container objects. Lurker uses [a-g], and differentiates T-junctions from corners for you, this module assumes you will do that for yourself.
The characters mean:
- Vertical stream crossing is permitted
-
In the original lurker crossing a path vertically is not allowed, this results in a lot of horizontal space being used.
METHODS
new
your common or garden constructor
arrange
Returns an array of arrays representing the thread tree.
extract_time( $container )
Extracts the time from a Mail::Thread::Container, returned as epoch seconds used to decide the order of adding messages to the rows.
AUTHOR
Richard Clamp <richardc@unixbeard.net>
SEE ALSO
Lurker, the application that seems to have originated this form of time-based thread display.