Hi Folks,

After writing this bit of ugly code...

if ( $res->can( 'parts' ) ) {
    die "multipart messages are not supported" unless scalar @{[ $res->parts ]} <= 1;
}

I decided that an is_multipart method might be handy.  Would anyone else find this 
functionality useful?

Cheers,

-J

--
diff -ru libwww-perl-5.79.old/lib/HTTP/Message.pm libwww-perl-5.79/lib/HTTP/Message.pm
--- libwww-perl-5.79.old/lib/HTTP/Message.pm    2004-06-07 20:16:43.458588208 -1000
+++ libwww-perl-5.79/lib/HTTP/Message.pm        2004-06-07 20:24:16.019788448 -1000
@@ -183,6 +183,12 @@
     return;
 }
 
+sub is_multipart {
+    my $self = shift;
+
+    return( @{[ $self->parts ]} > 1 );
+}
+
 
 # delegate all other method calls the the _headers object.
 sub AUTOLOAD
diff -ru libwww-perl-5.79.old/t/base/message-parts.t 
libwww-perl-5.79/t/base/message-parts.t
--- libwww-perl-5.79.old/t/base/message-parts.t 2004-06-07 20:16:43.460587904 -1000
+++ libwww-perl-5.79/t/base/message-parts.t     2004-06-07 20:35:35.713459304 -1000
@@ -2,7 +2,7 @@
 
 use strict;
 use Test qw(plan ok);
-plan tests => 39;
+plan tests => 46;
 
 use HTTP::Message;
 use HTTP::Request::Common qw(POST);
@@ -13,6 +13,7 @@
 ok($m->headers_as_string, "");
 ok($m->content, "");
 ok(j($m->parts), "");
+ok($m->is_multipart, "");
 ok($m->as_string, "\n");
 
 my $m_clone = $m->clone;
@@ -25,6 +26,7 @@
 ok($m->as_string, "Foo: 1\n\nfoo\n");
 ok($m->as_string("\r\n"), "Foo: 1\r\n\r\nfoo");
 ok(j($m->parts), "");
+ok($m->is_multipart, "");
 
 $m->content_type("message/foo");
 $m->content(<<EOT);
@@ -38,6 +40,7 @@
 
 my @parts = $m->parts;
 ok(@parts, 1);
+ok($m->is_multipart, "");
 my $m2 = $parts[0];
 ok(ref($m2), "HTTP::Message");
 
@@ -47,6 +50,7 @@
 ok($m2->content, "FooBar\n");
 ok($m2->as_string, $m->content);
 ok(j($m2->parts), "");
+ok($m->is_multipart, "");
 
 $m = POST("http://www.example.com";,
          Content_Type => 'form-data',
@@ -54,6 +58,7 @@
 ok($m->content_type, "multipart/form-data");
 @parts = $m->parts;
 ok(@parts, 2);
+ok($m->is_multipart, 1);
 ok($parts[0]->header("Content-Disposition"), 'form-data; name="foo"');
 ok($parts[0]->content, 1);
 ok($parts[1]->header("Content-Disposition"), 'form-data; name="bar"');
@@ -70,6 +75,7 @@
 
 @parts = $m->parts;
 ok(@parts, 1);
+ok($m->is_multipart, "");
 ok($parts[0]->method, "GET");
 ok($parts[0]->uri, "/");
 ok($parts[0]->protocol, "HTTP/1.0");
@@ -87,6 +93,7 @@
 
 @parts = $m->parts;
 ok(@parts, 1);
+ok($m->is_multipart, "");
 ok($parts[0]->code, 200);
 ok($parts[0]->message, "OK");
 ok($parts[0]->protocol, "HTTP/1.1");

Reply via email to