NAME
Mojo::Content::Single - HTTP 1.1 content container
SYNOPSIS
my
$single
= Mojo::Content::Single->new;
$single
->parse(
"Content-Length: 12\r\n\r\nHello World!"
);
DESCRIPTION
Mojo::Content::Single is a container for HTTP 1.1 content as described in RFC 2616.
EVENTS
Mojo::Content::Single inherits all events from Mojo::Content and can emit the following new ones.
upgrade
$single
->on(
upgrade
=>
sub
{
my
(
$single
,
$multi
) =
@_
;
});
Emitted when content gets upgraded to a Mojo::Content::MultiPart object. Note that this event is EXPERIMENTAL and might change without warning!
$single
->on(
upgrade
=>
sub
{
my
(
$single
,
$multi
) =
@_
;
return
unless
$multi
->headers->content_type =~ /multipart\/([^;]+)/i;
say
"Multipart: $1"
;
});
ATTRIBUTES
Mojo::Content::Single inherits all attributes from Mojo::Content and implements the following new ones.
asset
my
$asset
=
$single
->asset;
$single
=
$single
->asset(Mojo::Asset::Memory->new);
The actual content, defaults to a Mojo::Asset::Memory object with auto_upgrade
enabled.
auto_upgrade
my
$upgrade
=
$single
->auto_upgrade;
$single
=
$single
->auto_upgrade(0);
Try to detect multipart content and automatically upgrade to a Mojo::Content::MultiPart object, defaults to 1
. Note that this attribute is EXPERIMENTAL and might change without warning!
METHODS
Mojo::Content::Single inherits all methods from Mojo::Content and implements the following new ones.
new
my
$single
= Mojo::Content::Single->new;
Construct a new Mojo::Content::Single object and subscribe to read
event with default content parser.
body_contains
my
$success
=
$single
->body_contains(
'1234567'
);
Check if content contains a specific string.
body_size
my
$size
=
$single
->body_size;
Content size in bytes.
clone
my
$clone
=
$single
->clone;
Clone content if possible. Note that this method is EXPERIMENTAL and might change without warning!
get_body_chunk
my
$chunk
=
$single
->get_body_chunk(0);
Get a chunk of content starting from a specfic position.
parse
$single
=
$single
->parse(
"Content-Length: 12\r\n\r\nHello World!"
);
my
$multi
=
$single
->parse(
"Content-Type: multipart/form-data\r\n\r\n"
);
Parse content chunk and upgrade to Mojo::Content::MultiPart object if possible.