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