NAME
Mojo::ByteStream - ByteStream
SYNOPSIS
use Mojo::ByteStream;
my $stream = Mojo::ByteStream->new('foobarbaz');
$stream->camelize;
$stream->decamelize;
$stream->b64_encode;
$stream->b64_decode;
$stream->encode('UTF-8');
$stream->decode('UTF-8');
$stream->hmac_md5_sum('secret');
$stream->html_escape;
$stream->html_unescape;
$stream->md5_sum;
$stream->qp_encode;
$stream->qp_decode;
$stream->quote;
$stream->unquote;
$stream->url_escape;
$stream->url_sanitize;
$stream->url_unescape;
$stream->xml_escape;
$stream->punycode_encode;
$stream->punycode_decode;
my $size = $stream->size;
my $stream2 = $stream->clone;
print $stream2->to_string;
# Chained
my $stream = Mojo::ByteStream->new('foo bar baz')->quote;
$stream = $stream->unquote->encode('UTF-8)->b64_encode;
print "$stream";
# Constructor alias
use Mojo::ByteStream 'b';
my $stream = b('foobarbaz')->html_escape;
# Buffering
my $stream = Mojo::ByteStream->new;
$stream->add_chunk('bar');
my $foo = $stream->remove(3);
my $bar = $stream->empty;
DESCRIPTION
Mojo::ByteStream provides portable text and bytestream manipulation functions.
ATTRIBUTES
Mojo::ByteStream implements the following attributes.
raw_size
my $size = $stream->raw_size;
$stream = $stream->raw_size(23);
Raw bytestream size in bytes.
METHODS
Mojo::ByteStream inherits all methods from Mojo::Base and implements the following new ones.
new
my $stream = Mojo::ByteStream->new($string);
Construct a new Mojo::ByteStream object.
add_chunk
$stream = $stream->add_chunk('foo');
Add chunk of data to bytestream.
b64_decode
$stream = $stream->b64_decode;
Base 64 decode bytestream.
b64_encode
$stream = $stream->b64_encode;
Base 64 encode bytestream.
camelize
$stream = $stream->camelize;
Camelize bytestream.
foo_bar -> FooBar
clone
my $stream2 = $stream->clone;
Clone bytestream.
contains
my $position = $stream->contains('something');
Check if bytestream contains a specific string.
decamelize
$stream = $stream->decamelize;
Decamelize bytestream.
FooBar -> foo_bar
decode
$stream = $stream->decode($encoding);
Decode bytestream.
$stream->decode('UTF-8')->to_string;
empty
my $chunk = $stream->empty;
Empty bytestream.
encode
$stream = $stream->encode($encoding);
Encode bytestream.
$stream->encode('UTF-8')->to_string;
get_line
my $line = $stream->get_line;
Extract a whole line from start of bytestream. Lines are expected to end with 0x0d 0x0a
or 0x0a
.
hmac_md5_sum
$stream = $stream->hmac_md5_sum($secret);
Turn bytestream into HMAC-MD5 checksum of old content.
html_escape
$stream = $stream->html_escape;
HTML escape bytestream.
html_unescape
$stream = $stream->html_unescape;
HTML unescape bytestream.
md5_sum
$stream = $stream->md5_sum;
Turn bytestream into MD5 checksum of old content.
punycode_decode
$stream = $stream->punycode_decode;
Punycode decode bytestream.
punycode_encode
$stream = $stream->punycode_encode;
Punycode encode bytestream.
qp_decode
$stream = $stream->qp_decode;
Quoted Printable decode bytestream.
qp_encode
$stream = $stream->qp_encode;
Quoted Printable encode bytestream.
quote
$stream = $stream->quote;
Quote bytestream.
remove
my $chunk = $stream->remove(4);
my $chunk = $stream->remove(4, 'abcd');
Remove a specific number of bytes from bytestream.
size
my $size = $stream->size;
Size of bytestream.
to_string
my $string = $stream->to_string;
Stringify bytestream.
unquote
$stream = $stream->unquote;
Unquote bytestream.
url_escape
$stream = $stream->url_escape;
$stream = $stream->url_escape('A-Za-z0-9\-\.\_\~');
URL escape bytestream.
url_sanitize
$stream = $stream->url_sanitize;
URL sanitize bytestream.
url_unescape
$stream = $stream->url_unescape;
URL unescape bytestream.
xml_escape
$stream = $stream->xml_escape;
XML escape bytestream, this is a much faster version of html_escape
escaping only the characters &
, <
, >
, "
and '
.