r3227 - in /packages/libemail-send-perl/trunk: Changes MANIFEST META.yml Makefile.PL debian/changelog debian/control lib/Email/Send.pm lib/Email/Send/IO.pm t/foreign-mailer.t t/lib/ t/no-import.t t/object-mailer.t t/sendmail.t

eloy at users.alioth.debian.org eloy at users.alioth.debian.org
Thu Jul 6 12:25:01 UTC 2006


Author: eloy
Date: Thu Jul  6 12:24:59 2006
New Revision: 3227

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=3227
Log:
eloy: new upstream version

Added:
    packages/libemail-send-perl/trunk/t/foreign-mailer.t
      - copied unchanged from r3226, packages/libemail-send-perl/branches/upstream/current/t/foreign-mailer.t
    packages/libemail-send-perl/trunk/t/lib/
      - copied from r3226, packages/libemail-send-perl/branches/upstream/current/t/lib/
    packages/libemail-send-perl/trunk/t/no-import.t
      - copied unchanged from r3226, packages/libemail-send-perl/branches/upstream/current/t/no-import.t
    packages/libemail-send-perl/trunk/t/object-mailer.t
      - copied unchanged from r3226, packages/libemail-send-perl/branches/upstream/current/t/object-mailer.t
Modified:
    packages/libemail-send-perl/trunk/Changes
    packages/libemail-send-perl/trunk/MANIFEST
    packages/libemail-send-perl/trunk/META.yml
    packages/libemail-send-perl/trunk/Makefile.PL
    packages/libemail-send-perl/trunk/debian/changelog
    packages/libemail-send-perl/trunk/debian/control
    packages/libemail-send-perl/trunk/lib/Email/Send.pm
    packages/libemail-send-perl/trunk/lib/Email/Send/IO.pm
    packages/libemail-send-perl/trunk/t/sendmail.t

Modified: packages/libemail-send-perl/trunk/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/Changes?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/Changes (original)
+++ packages/libemail-send-perl/trunk/Changes Thu Jul  6 12:24:59 2006
@@ -1,3 +1,16 @@
+2.11    2006-07-05
+
+  - fixed bug introduced in 2.10; message modifiers were broken
+    thanks ABH
+
+2.10    2006-07-03
+
+  - improve portability of sendmail.t (rjbs)
+  - fix bugs with plugins outside Email::Send:: (rjbs)
+  - allow objects as mailers (rjbs)
+  - clarify documentation (rjbs)
+  - improve backwards compat with Email::Send 1 (see no-import.t) (rjbs)
+
 2.05    2006-04-20
 
   - Removed UNIVERSAL::require use.

Modified: packages/libemail-send-perl/trunk/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/MANIFEST?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/MANIFEST (original)
+++ packages/libemail-send-perl/trunk/MANIFEST Thu Jul  6 12:24:59 2006
@@ -14,8 +14,14 @@
 t/classic.t
 t/email-send-test.t
 t/email-send.t
+t/foreign-mailer.t
+t/no-import.t
+t/object-mailer.t
 t/sendmail.t
 t/test.t
+t/lib/Email/Send/OK.pm
+t/lib/OKMailer.pm
+t/lib/OKMailerOO.pm
 util/executable
 util/not-executable
 util/sendmail

Modified: packages/libemail-send-perl/trunk/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/META.yml?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/META.yml (original)
+++ packages/libemail-send-perl/trunk/META.yml Thu Jul  6 12:24:59 2006
@@ -1,16 +1,17 @@
 # http://module-build.sourceforge.net/META-spec.html
 #XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
 name:         Email-Send
-version:      2.05
+version:      2.11
 version_from: lib/Email/Send.pm
 installdirs:  site
 requires:
     Class::Accessor::Fast:         0.19
     Email::Address:                1.80
     Email::Simple:                 1.92
-    Module::Pluggable:             2.8
+    Module::Pluggable:             2.97
     Return::Value:                 1.28
+    Scalar::Util:                  1.02
     Test::More:                    0.47
 
 distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.17
+generated_by: ExtUtils::MakeMaker version 6.30

Modified: packages/libemail-send-perl/trunk/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/Makefile.PL?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/Makefile.PL (original)
+++ packages/libemail-send-perl/trunk/Makefile.PL Thu Jul  6 12:24:59 2006
@@ -1,16 +1,17 @@
 use ExtUtils::MakeMaker;
 
 WriteMakefile (
-               AUTHOR        => 'Casey West <casey at geeknest.com>',
-               ABSTRACT      => "Simply Sending Email",
-               NAME          => 'Email::Send',
-               PREREQ_PM     => {
-                                 'Class::Accessor::Fast' => '0.19',
-                                 'Email::Address' => '1.80',
-                                 'Email::Simple' => '1.92',
-                                 'Module::Pluggable' => '2.8',
-                                 'Return::Value' => '1.28',
-                                 'Test::More' => '0.47',
-                                },
-               VERSION_FROM  => 'lib/Email/Send.pm',
-              );
+  AUTHOR        => 'Casey West <casey at geeknest.com>',
+  ABSTRACT      => "Simply Sending Email",
+  NAME          => 'Email::Send',
+  PREREQ_PM     => {
+    'Class::Accessor::Fast' => '0.19',
+    'Email::Address'    => '1.80',
+    'Email::Simple'     => '1.92',
+    'Module::Pluggable' => '2.97', # topic safety
+    'Return::Value'     => '1.28',
+    'Scalar::Util'      => '1.02',
+    'Test::More'        => '0.47',
+  },
+  VERSION_FROM  => 'lib/Email/Send.pm',
+);

Modified: packages/libemail-send-perl/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/debian/changelog?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/debian/changelog (original)
+++ packages/libemail-send-perl/trunk/debian/changelog Thu Jul  6 12:24:59 2006
@@ -1,3 +1,9 @@
+libemail-send-perl (2.11-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Krzysztof Krzyzaniak (eloy) <eloy at debian.org>  Thu,  6 Jul 2006 14:23:39 +0200
+
 libemail-send-perl (2.05-1) unstable; urgency=low
 
   * Initial Release (closes: #367200).

Modified: packages/libemail-send-perl/trunk/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/debian/control?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/debian/control (original)
+++ packages/libemail-send-perl/trunk/debian/control Thu Jul  6 12:24:59 2006
@@ -5,7 +5,7 @@
 Build-Depends-Indep: perl (>= 5.8.0-7), libmodule-pluggable-perl, libreturn-value-perl, libemail-simple-perl, libclass-accessor-perl, libemail-address-perl
 Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
 Uploaders: Krzysztof Krzyzaniak (eloy) <eloy at debian.org>
-Standards-Version: 3.7.2
+Standards-Version: 3.7.2.1
 
 Package: libemail-send-perl
 Architecture: all

Modified: packages/libemail-send-perl/trunk/lib/Email/Send.pm
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/lib/Email/Send.pm?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/lib/Email/Send.pm (original)
+++ packages/libemail-send-perl/trunk/lib/Email/Send.pm Thu Jul  6 12:24:59 2006
@@ -1,14 +1,14 @@
 package Email::Send;
-# $Id: Send.pm,v 1.17 2006/04/20 15:39:06 cwest Exp $
 use strict;
 
 use vars qw[$VERSION];
-$VERSION   = '2.05';
+$VERSION   = '2.11';
 
 use base qw[Class::Accessor::Fast];
 use Email::Simple;
 use Module::Pluggable search_path => 'Email::Send';
 use Return::Value;
+use Scalar::Util ();
 
 =head1 NAME
 
@@ -56,7 +56,7 @@
 
 =item new()
 
-  my $mailer = Email::Send->new({
+  my $sender = Email::Send->new({
       mailer      => 'NNTP',
       mailer_args => [ Host => 'nntp.example.com' ],
   });
@@ -113,7 +113,7 @@
 
 =item send()
 
-  my $result = $mailer->send($message, @modifier_args);
+  my $result = $sender->send($message, @modifier_args);
 
 Send a message using the predetermined mailer and mailer arguments. If you
 have defined a C<message_modifier> it will be called prior to sending.
@@ -128,11 +128,12 @@
 =cut
 
 sub send {
-    my ($self, $message, @args) = @_;
-    my $simple = $self->_objectify_message($message);
-    return failure "No message found." unless $simple;
-
-	$self->message_modifier(
+  goto &_send_function unless eval { $_[0]->isa('Email::Send') };
+  my ($self, $message, @args) = @_;
+  my $simple = $self->_objectify_message($message);
+  return failure "No message found." unless $simple;
+
+	$self->message_modifier->(
 		$self, $simple,
 		@args,
 	) if $self->message_modifier;
@@ -146,7 +147,7 @@
 
 =item all_mailers()
 
-  my @available = $mailer->all_mailers;
+  my @available = $sender->all_mailers;
 
 Returns a list of availabe mailers. These are mailers that are
 installed on your computer and register themselves as available.
@@ -165,8 +166,8 @@
 =item mailer_available()
 
   # is SMTP over SSL avaialble?
-  $mailer->mailer('SMTP')
-    if $mailer->mailer_available('SMTP', ssl => 1);
+  $sender->mailer('SMTP')
+    if $sender->mailer_available('SMTP', ssl => 1);
 
 Given the name of a mailer, such as C<SMTP>, determine if it is
 available. Any additional arguments passed to this method are passed
@@ -177,16 +178,18 @@
 =cut
 
 sub mailer_available {
-	my ($self, $mailer, @args) = @_;
-	if ( my $package = $self->_plugin_list->{$mailer} ) {
-	    eval "CORE::require $package" or return failure $@;
-	    $package->can('is_available')
-	      or return failure "Mailer $mailer doesn't report availability.";
-		my $test = $package->is_available(@args);
-		return $test unless $test;
-		return success;
-	}
-	return failure "Mailer $mailer not found.";
+  my ($self, $mailer, @args) = @_;
+
+  my $invocant = $self->_mailer_invocant($mailer);
+
+  return $invocant unless $invocant;
+
+  $invocant->can('is_available')
+    or return failure "Mailer $mailer doesn't report availability.";
+
+  my $test = $invocant->is_available(@args);
+  return $test unless $test;
+  return success;
 }
 
 sub _objectify_message {
@@ -199,14 +202,29 @@
     return undef;
 }
 
+sub _mailer_invocant {
+  my ($self, $mailer) = @_;
+
+  return $mailer if Scalar::Util::blessed($mailer);
+
+  # is the mailer a plugin given by short name?
+  my $package = exists $self->_plugin_list->{$mailer}
+               ? $self->_plugin_list->{$mailer}
+               : $mailer;
+
+  eval "require $package" or return failure "$@";
+
+  return $package;
+}
+
 sub _send_it {
-	my ($self, $mailer, $message) = @_;
-	my $test = $self->mailer_available($mailer);
-	return $test unless $test;
-
-    my $package = $self->_plugin_list->{$mailer};
-    eval "CORE::require $package" or return failure;
-	return $package->send($message, @{$self->mailer_args});
+    my ($self, $mailer, $message) = @_;
+    my $test = $self->mailer_available($mailer);
+    return $test unless $test;
+
+    my $invocant = $self->_mailer_invocant($mailer);
+
+    return $invocant->send($message, @{$self->mailer_args});
 }
 
 sub _try_all {
@@ -259,7 +277,7 @@
 to implement a single function, C<send>. It will be called from
 C<Email::Send> exactly like this.
 
-  Your::Sending::Package::send($message, @args);
+  Your::Sending::Package->send($message, @args);
 
 C<$message> is an Email::Simple object, C<@args> are the extra
 arguments passed into C<Email::Send::send>.
@@ -277,7 +295,7 @@
   }
 
   sub send {
-      my ($message, @args);
+      my ($class, $message, @args);
 
 	  use LWP::UserAgent;
 
@@ -296,12 +314,12 @@
 This example will keep a UserAgent singleton unless new arguments are
 passed to C<send>. It is used by calling C<Email::Send::send>.
 
-  my $mailer = Email::Send->new({ mailer => 'HTTP::Post' });
-  
-  $mailer->mailer_args([ 'http://example.com/incoming', 'message' ]);
-
-  $mailer->send($message);
-  $mailer->send($message2); # uses saved $URL and $FIELD
+  my $sender = Email::Send->new({ mailer => 'HTTP::Post' });
+  
+  $sender->mailer_args([ 'http://example.com/incoming', 'message' ]);
+
+  $sender->send($message);
+  $sender->send($message2); # uses saved $URL and $FIELD
 
 =head1 SEE ALSO
 

Modified: packages/libemail-send-perl/trunk/lib/Email/Send/IO.pm
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/lib/Email/Send/IO.pm?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/lib/Email/Send/IO.pm (original)
+++ packages/libemail-send-perl/trunk/lib/Email/Send/IO.pm Thu Jul  6 12:24:59 2006
@@ -1,5 +1,4 @@
 package Email::Send::IO;
-# $Id: IO.pm,v 1.7 2006/04/20 15:39:06 cwest Exp $
 use strict;
 
 use Return::Value;

Modified: packages/libemail-send-perl/trunk/t/sendmail.t
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libemail-send-perl/trunk/t/sendmail.t?rev=3227&op=diff
==============================================================================
--- packages/libemail-send-perl/trunk/t/sendmail.t (original)
+++ packages/libemail-send-perl/trunk/t/sendmail.t Thu Jul  6 12:24:59 2006
@@ -50,12 +50,31 @@
   like( $return, qr/cannot execute/, 'error message says what we expect' );
 }
 
+my $has_FileTemp = eval { require File::Temp; };
+
 SKIP:
 {
-  skip 'Cannot run this test unless current perl is at /usr/bin/perl', 1
-    unless -x '/usr/bin/perl' && $^X eq '/usr/bin/perl';
+  skip 'Cannot run this test unless current perl is -x', 1 unless -x $^X;
 
-  local $Email::Send::Sendmail::SENDMAIL = './util/executable';
+  skip 'Cannot run this test without File::Temp', 1 unless $has_FileTemp;
+  my $tempdir = File::Temp::tempdir();
+
+  require File::Spec;
+
+  my $error = "can't prepare executable test script";
+
+  my $filename = File::Spec->catfile($tempdir, "executable");
+  open my $fh, ">", $filename or skip $error, 1;
+
+  open my $exec, "<", './util/executable' or skip $error, 1;
+
+  print {$fh} "#!$^X\n" or skip $error, 1;
+  print {$fh} <$exec>   or skip $error, 1;
+  close $fh             or skip $error, 1;
+
+  chmod 0755, $filename;
+
+  local $Email::Send::Sendmail::SENDMAIL = $filename;
   my $sender = Email::Send->new({mailer => 'Sendmail'});
   my $return = $sender->send($email);
   ok( $return, 'send() succeeded with executable $SENDMAIL' );
@@ -63,10 +82,26 @@
 
 SKIP:
 {
-  skip 'Cannot run this test unless current perl is at /usr/bin/perl', 2
-    unless -x '/usr/bin/perl' && $^X eq '/usr/bin/perl';
+  skip 'Cannot run this test unless current perl is -x', 1 unless -x $^X;
 
-  local $ENV{PATH} = './util';
+  skip 'Cannot run this test without File::Temp', 1 unless $has_FileTemp;
+  my $tempdir = File::Temp::tempdir();
+
+  require File::Spec;
+
+  my $error = "can't prepare executable test script";
+
+  my $filename = File::Spec->catfile($tempdir, "sendmail");
+  open my $sendmail_fh, ">", $filename or skip $error, 1;
+  open my $template_fh, "<", './util/sendmail' or skip $error, 1;
+
+  print {$sendmail_fh} "#!$^X\n"      or skip $error, 1;
+  print {$sendmail_fh} <$template_fh> or skip $error, 1;
+  close $sendmail_fh                  or skip $error, 1;
+
+  chmod 0755, $filename;
+
+  local $ENV{PATH} = $tempdir;
   my $sender = Email::Send->new({mailer => 'Sendmail'});
   my $return = $sender->send($email);
   ok( $return, 'send() succeeded with executable sendmail in path' );




More information about the Pkg-perl-cvs-commits mailing list