=head1 NAME

Mail::VersionTracker - Parses newsletters from versiontracker.com

=head1 SYNOPSIS

 use Mail::VersionTracker;

 my $newsletter = Mail::VersionTracker->new(\*STDIN);

 print "Date: ", $newsletter->date(), "\n";
 print "Total entries: ", $newsletter->total(), "\n\n";

 for my $entry ($newsletter->entries()) {
    print "Name and version: ", $entry->name_and_version(), "\n";
    print "Name: ", $entry->name(), "\n";
    print "Version: ", $entry->version(), "\n";
    print "Category: ", $entry->category(), "\n";
    print "Date: ", $entry->date(), "\n";
    print "Description: ", $entry->description(), "\n";
    print "URL: ", $entry->url(), "\n\n";
 }

 # or

 for my $entry ($newsletter->entries()) {
     for my $key ($entry->entry_keys()) {
         my $key_stringified = $entry->stringify($key);
         print "$key_stringified: ", $entry->$key(), "\n";
     }
     print "\n";
 }

=head1 DESCRIPTION

Mail::VersionTracker is a subclass of B<Mail::Internet>.

This package provides parsing of the daily e-mail newsletters which are sent
out from F<http://versiontracker.com/> to any individual who requests them.

=head1 CLASS METHODS

=over 4

=item * B<new>

This is the constructor. Pass it something that Mail::Internet will like such
as a file descriptor (reference to a GLOB) or a reference to an array and you
will get back a newsletter object.

=back

=head1 NEWSLETTER METHODS

=over 4

=item * B<date>

Returns the date of this newsletter.

=item * B<total>

Returns the total number entries in this newsletter.

=item * B<entries>

This object method will return an array or an array reference (depending
on context) of entry objects for all of the entries in the newsletter.

=item * B<details>

Returns the text representation of all of the newsletter's entries.

=item * B<full>

Return the text representation of the entire newsletter.

=back

=head1 ENTRY METHODS

=over 4

=item * B<entry_keys>

Returns all of the methods, by name, that can be called against an entry.

=item * B<stringify>

Stringifies the name of an entry key, i.e., ucfirst's it, and converts all
underscores to spaces.

=item * B<name_and_version>

Returns the name and version of this entry. I.e., Zoe 0.5.4

=item * B<name>

Returns the name of this entry. I.e., Zoe

=item * B<version>

Returns the version of this entry. I.e., 0.5.4

=item * B<category>

Returns the category of this entry. I.e., Freeware

=item * B<date>

Returns the date of this entry. I.e., 11/22/2003

=item * B<description>

Returns the description of this entry. I.e., Browser based email client

=item * B<url>

Returns the URL of this entry. I.e., http://www.versiontracker.com/dyn/moreinfo/mac/14677

=back

=head1 BUGS

  Please report any bugs to (patches welcome):
  http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Mail-VersionTracker

=head1 COPYRIGHT

  Copyright (c) 2003 Adam J. Foxson. All rights reserved.

=head1 LICENSE

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
details.

=head1 SEE ALSO

=over 4

=item * L<perl>

=item * L<Mail::Internet>

=back

=head1 AUTHOR

Adam J. Foxson E<lt>F<afoxson@pobox.com>E<gt>.

=cut
