r5112 - in /packages/libemail-simple-creator-perl/trunk: Changes
LICENSE
MANIFEST META.yml Makefile.PL debian/changelog debian/compat debian/control
lib/Email/Simple/Creator.pm t/create.t
gregoa-guest at users.alioth.debian.org
gregoa-guest at users.alioth.debian.org
Sun Apr 15 13:41:17 UTC 2007
Author: gregoa-guest
Date: Sun Apr 15 13:41:16 2007
New Revision: 5112
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=5112
Log:
* New upstream release.
* Set debhelper compatibility level to 5.
Added:
packages/libemail-simple-creator-perl/trunk/LICENSE
- copied unchanged from r5111, packages/libemail-simple-creator-perl/branches/upstream/current/LICENSE
Modified:
packages/libemail-simple-creator-perl/trunk/Changes
packages/libemail-simple-creator-perl/trunk/MANIFEST
packages/libemail-simple-creator-perl/trunk/META.yml
packages/libemail-simple-creator-perl/trunk/Makefile.PL
packages/libemail-simple-creator-perl/trunk/debian/changelog
packages/libemail-simple-creator-perl/trunk/debian/compat
packages/libemail-simple-creator-perl/trunk/debian/control
packages/libemail-simple-creator-perl/trunk/lib/Email/Simple/Creator.pm
packages/libemail-simple-creator-perl/trunk/t/create.t
Modified: packages/libemail-simple-creator-perl/trunk/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/Changes?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/Changes (original)
+++ packages/libemail-simple-creator-perl/trunk/Changes Sun Apr 15 13:41:16 2007
@@ -1,21 +1,27 @@
-1.41 2006-07-03
+1.421 2007-03-22
+ packaging improvements
- - don't use no_plan in test; it breaks under old Test::More
- (applied by RJBS, thanks to LTHEGLER)
+1.420 2007-02-23
+ reduce use of unneeded variables during creation
+ fix bugs that skipped creating headers with false values
+ use standard crlf for creating mail
+ A changelog entry below indicates that this was not the goal, but
+ all the code seems as if it was meant to do this. There was a bug
+ in the logic, and there were no tests.
-1.4 2004-07-25
+1.41 2006-07-03
+ don't use no_plan in test; it breaks under old Test::More
+ (applied by RJBS, thanks to LTHEGLER)
- - use Email::Date
+1.4 2004-07-25
+ use Email::Date
-1.3 2004-07-05
+1.3 2004-07-05
+ Create a message using its local crlf (Casey West).
+ Include timezone info in the Date header (Steffen Goeldner).
- - Create a message using its local crlf (Casey West).
- - Include timezone info in the Date header (Steffen Goeldner).
+1.2 2004-07-05
+ Handle undefined values in the header list properly.
-1.2 2004-07-05
-
- - Handle undefined values in the header list properly.
-
-1.1
-
- - Initial Version
+1.1 ????-??-??
+ Initial Version
Modified: packages/libemail-simple-creator-perl/trunk/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/MANIFEST?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/MANIFEST (original)
+++ packages/libemail-simple-creator-perl/trunk/MANIFEST Sun Apr 15 13:41:16 2007
@@ -2,8 +2,9 @@
lib/Email/Simple/Creator.pm
Makefile.PL
MANIFEST This list of files
-META.yml
README
t/create.t
t/pod.t
t/pod-coverage.t
+LICENSE
+META.yml Module meta-data (added by MakeMaker)
Modified: packages/libemail-simple-creator-perl/trunk/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/META.yml?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/META.yml (original)
+++ packages/libemail-simple-creator-perl/trunk/META.yml Sun Apr 15 13:41:16 2007
@@ -1,13 +1,16 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: Email-Simple-Creator
-version: 1.41
-version_from: lib/Email/Simple/Creator.pm
-installdirs: site
-requires:
+--- #YAML:1.0
+name: Email-Simple-Creator
+version: 1.420
+abstract: Email::Simple constructor for starting anew.
+license: perl
+generated_by: ExtUtils::MakeMaker version 6.32
+distribution_type: module
+requires:
Email::Date:
Email::Simple:
Test::More: 0.47
-
-distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.30
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.2.html
+ version: 1.2
+author:
+ - Casey West <casey at geeknest.com>
Modified: packages/libemail-simple-creator-perl/trunk/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/Makefile.PL?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/Makefile.PL (original)
+++ packages/libemail-simple-creator-perl/trunk/Makefile.PL Sun Apr 15 13:41:16 2007
@@ -1,13 +1,15 @@
+use strict;
use ExtUtils::MakeMaker;
WriteMakefile (
- AUTHOR => 'Casey West <casey at geeknest.com>',
- ABSTRACT => "Email::Simple constructor for starting anew.",
- NAME => 'Email::Simple::Creator',
- PREREQ_PM => {
- 'Test::More' => '0.47',
- 'Email::Simple' => '',
- 'Email::Date' => '',
- },
- VERSION_FROM => 'lib/Email/Simple/Creator.pm',
- );
+ AUTHOR => 'Casey West <casey at geeknest.com>',
+ ABSTRACT => "Email::Simple constructor for starting anew.",
+ NAME => 'Email::Simple::Creator',
+ (eval { ExtUtils::MakeMaker->VERSION(6.21) } ? (LICENSE => 'perl') : ()),
+ PREREQ_PM => {
+ 'Test::More' => '0.47',
+ 'Email::Simple' => '',
+ 'Email::Date' => '',
+ },
+ VERSION_FROM => 'lib/Email/Simple/Creator.pm',
+);
Modified: packages/libemail-simple-creator-perl/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/debian/changelog?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/debian/changelog (original)
+++ packages/libemail-simple-creator-perl/trunk/debian/changelog Sun Apr 15 13:41:16 2007
@@ -1,3 +1,10 @@
+libemail-simple-creator-perl (1.420-1) unstable; urgency=low
+
+ * New upstream release.
+ * Set debhelper compatibility level to 5.
+
+ -- gregor herrmann <gregor+debian at comodo.priv.at> Sun, 15 Apr 2007 15:37:46 +0200
+
libemail-simple-creator-perl (1.41-1) unstable; urgency=low
* New upstream release
Modified: packages/libemail-simple-creator-perl/trunk/debian/compat
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/debian/compat?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/debian/compat (original)
+++ packages/libemail-simple-creator-perl/trunk/debian/compat Sun Apr 15 13:41:16 2007
@@ -1,1 +1,1 @@
-4
+5
Modified: packages/libemail-simple-creator-perl/trunk/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/debian/control?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/debian/control (original)
+++ packages/libemail-simple-creator-perl/trunk/debian/control Sun Apr 15 13:41:16 2007
@@ -1,10 +1,10 @@
Source: libemail-simple-creator-perl
Section: perl
Priority: optional
-Build-Depends: debhelper (>= 4.0.2)
+Build-Depends: debhelper (>= 5)
Build-Depends-Indep: perl (>= 5.8.0-7), libemail-date-perl, libemail-simple-perl, libtest-pod-coverage-perl, libtest-pod-perl
Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
-Uploaders: Paul Wise <pabs3 at bonedaddy.net>, Carlo Segre <segre at debian.org>
+Uploaders: Paul Wise <pabs3 at bonedaddy.net>, Carlo Segre <segre at debian.org>, gregor herrmann <gregor+debian at comodo.priv.at>
Standards-Version: 3.7.2
XS-Vcs-Svn: svn://svn.debian.org/pkg-perl/packages/libemail-simple-creator-perl/trunk/
Modified: packages/libemail-simple-creator-perl/trunk/lib/Email/Simple/Creator.pm
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/lib/Email/Simple/Creator.pm?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/lib/Email/Simple/Creator.pm (original)
+++ packages/libemail-simple-creator-perl/trunk/lib/Email/Simple/Creator.pm Sun Apr 15 13:41:16 2007
@@ -2,18 +2,26 @@
use strict;
use vars qw[$VERSION $CRLF];
-$VERSION = '1.41';
-$CRLF = "\x0a\x0d";
+$VERSION = '1.420';
+
+sub _crlf {
+ "\x0a\x0d";
+}
sub _date_header {
- require Email::Date;
- Email::Date::format_date();
+ require Email::Date;
+ Email::Date::format_date();
}
sub _add_to_header {
- my ($class, $header, $key, $value) = @_;
- return unless $value;
- ${$header} .= join(": ", $key, $value) . $CRLF;
+ my ($class, $header, $key, $value) = @_;
+ $value = '' unless defined $value;
+ $$header .= "$key: $value" . $class->_crlf;
+}
+
+sub _finalize_header {
+ my ($class, $header) = @_;
+ $$header .= $class->_crlf;
}
package Email::Simple;
@@ -23,26 +31,32 @@
$CREATOR = 'Email::Simple::Creator';
sub create {
- my ($class, %args) = @_;
+ my ($class, %args) = @_;
- my @headers = @{ $args{header} || [] };
- my $body = $args{body} || '';
- my $header = '';
- my %headers;
+ my $headers = $args{header} || [];
+ my $body = $args{body} || '';
- pop @headers if @headers % 2 == 1;
- while ( my ($key, $value) = splice @headers, 0, 2 ) {
- $headers{$key} = 1;
- $CREATOR->_add_to_header(\$header, $key, $value);
- }
+ my $empty = q{};
+ my $header = \$empty;
- $CREATOR->_add_to_header(\$header,
- Date => $CREATOR->_date_header
- ) unless $headers{Date};
+ for my $idx (map { $_ * 2 } 0 .. @$headers / 2 - 1) {
+ my ($key, $value) = @$headers[ $idx, $idx + 1 ];
+ $CREATOR->_add_to_header($header, $key, $value);
+ }
- my $email = $class->new($header);
- $email->body_set($body . $email->{mycrlf});
- return $email;
+ $CREATOR->_finalize_header($header);
+
+ my $email = $class->new($header);
+
+ $email->header_set(Date => $CREATOR->_date_header)
+ unless defined $email->header('Date');
+
+ # No reason to add a trailing CRLF if we have one already.
+ my $crlf = $email->crlf;
+ $body .= $crlf unless $crlf eq (substr $body, - length $crlf);
+ $email->body_set($body);
+
+ return $email;
}
1;
@@ -51,7 +65,7 @@
=head1 NAME
-Email::Simple::Creator - Email::Simple constructor for starting anew.
+Email::Simple::Creator - Email::Simple constructor for starting anew
=head1 SYNOPSIS
@@ -76,11 +90,9 @@
This software provides a constructor to L<Email::Simple|Email::Simple> for
creating messages from scratch.
-=head2 Methods
+=head1 METHODS
-=over 5
-
-=item create
+=head2 create
my $email = Email::Simple->create(header => [ @headers ], body => '...');
@@ -100,8 +112,6 @@
to C<< Email::Simple->new() >>. C<create()> returns the value returned
by C<new()>. With skill, that's an C<Email::Simple> object.
-=back
-
=head1 SEE ALSO
L<Email::Simple>,
Modified: packages/libemail-simple-creator-perl/trunk/t/create.t
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-simple-creator-perl/trunk/t/create.t?rev=5112&op=diff
==============================================================================
--- packages/libemail-simple-creator-perl/trunk/t/create.t (original)
+++ packages/libemail-simple-creator-perl/trunk/t/create.t Sun Apr 15 13:41:16 2007
@@ -1,49 +1,114 @@
-use Test::More tests => 6;
+use strict;
+use warnings;
+
+use Test::More tests => 12;
+
+use_ok 'Email::Simple';
use_ok 'Email::Simple::Creator';
-use_ok 'Email::Simple';
-sub test_email;
+sub tested_email {
+ my (%args) = @_;
-test_email 0 => {
- header => [
- To => 'you',
- ],
- body => 'test test',
-} => <<__MESSAGE__;
-To: you
-Date: Thu, 17 Jun 2004 18:13:14 -0000
+ my $email = Email::Simple->create(%args);
+ isa_ok $email, 'Email::Simple';
-test test
-__MESSAGE__
+ my $string = $email->as_string;
-test_email 1 => {
- header => [
- Date => 'testing',
- 'X-Header' => 'one',
- 'X-Header' => 'two',
- 'X-Header' => 'three',
- ],
- body => q[This is a multi-
- line message.],
-} => <<__MESSAGE__;
+ my @last_two = (
+ substr($string, -2, 1),
+ substr($string, -1, 1),
+ );
+
+ is(
+ sprintf("%03u %03u", map { ord } @last_two),
+ '010 013',
+ 'stringified message ends with std CRLF'
+ );
+
+ return $email;
+}
+
+{ # should get an automatic date header
+ my $email = tested_email(
+ header => [
+ To => 'you',
+ ],
+ body => 'test test',
+ );
+
+ like(
+ $email->header('date'),
+ qr/^[A-Z][a-z]{2},/, # lame -- rjbs, 2007-02-23
+ "we got an auto-generated date header starting with a DOW",
+ );
+}
+
+{ # no date header, we provided one
+ my $email = tested_email(
+ header => [
+ Date => 'testing',
+ 'X-Header' => 'one',
+ 'X-Header' => 'two',
+ 'X-Header' => 'three',
+ ],
+ body => q[This is a multi-
+ line message.],
+ );
+
+ my $expected = <<'END_MESSAGE';
Date: testing
X-Header: one
X-Header: two
X-Header: three
This is a multi-
- line message.
-__MESSAGE__
+ line message.
+END_MESSAGE
-sub test_email {
- my ($pass, $args, $message) = @_;
- my $email = Email::Simple->create(%{$args});
- print $email->as_string and return unless $message; # debugging
- isa_ok $email, 'Email::Simple';
- my $string = $email->as_string;
- $string =~ s/\x0a\x0d/\n/g;
- $message =~ s/\x0a\x0d/\n/g;
- $pass ?
- is $string, $message :
- isnt $string, $message;
+ my $string = $email->as_string;
+ $string =~ s/\x0a\x0d/\n/gsm;
+
+ is(
+ $string,
+ $expected,
+ "we got just the string we expected",
+ );
}
+
+{ # a few headers with false values
+ my $email = tested_email(
+ header => [
+ Date => undef,
+ Zero => 0,
+ Empty => '',
+ ],
+ body => "The body is uninteresting.",
+ );
+
+ is_deeply(
+ [ $email->header_pairs ],
+ [
+ Date => '',
+ Zero => 0,
+ Empty => '',
+ ],
+ "got the false headers back we want",
+ );
+
+ my $expected = <<'END_MESSAGE';
+Date:
+Zero: 0
+Empty:
+
+The body is uninteresting.
+END_MESSAGE
+
+ my $string = $email->as_string;
+ $string =~ s/\x0a\x0d/\n/gsm;
+
+ is(
+ $string,
+ $expected,
+ "we got just the string we expected",
+ );
+}
More information about the Pkg-perl-cvs-commits
mailing list