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");