Mojo::Asset::Memory - In-memory storage for HTTP content
SYNOPSIS
use Mojo::Asset::Memory; | |
my $mem = Mojo::Asset::Memory->new; | |
$mem->add_chunk('foo bar baz'); | |
say $mem->slurp; |
DESCRIPTION
Mojo::Asset::Memory is an in-memory storage backend for HTTP content.
EVENTS
Mojo::Asset::Memory inherits all events from Mojo::Asset and can emit the following new ones.
upgrade
$mem->on(upgrade => sub ($mem, $file) {...});
Emitted when asset gets upgraded to a Mojo::Asset::File object.
$mem->on(upgrade => sub ($mem, $file) { $file->tmpdir('/tmp') });
ATTRIBUTES
Mojo::Asset::Memory inherits all attributes from Mojo::Asset and implements the following new ones.
auto_upgrade
my $bool = $mem->auto_upgrade; | |
$mem = $mem->auto_upgrade($bool); |
Try to detect if content size exceeds "max_memory_size" limit and automatically upgrade to a Mojo::Asset::File object.
max_memory_size
my $size = $mem->max_memory_size; | |
$mem = $mem->max_memory_size(1024); |
Maximum size in bytes of data to keep in memory before automatically upgrading to a Mojo::Asset::File object, defaults to the value of the MOJO_MAX_MEMORY_SIZE
environment variable or 262144
(256KiB).
mtime
my $mtime = $mem->mtime; | |
$mem = $mem->mtime(1408567500); |
Modification time of asset, defaults to the value of $^T
.
METHODS
Mojo::Asset::Memory inherits all methods from Mojo::Asset and implements the following new ones.
add_chunk
$mem = $mem->add_chunk('foo bar baz'); | |
my $file = $mem->add_chunk('abc' x 262144); |
Add chunk of data and upgrade to Mojo::Asset::File object if necessary.
contains
my $position = $mem->contains('bar');
Check if asset contains a specific string.
get_chunk
my $bytes = $mem->get_chunk($offset); | |
my $bytes = $mem->get_chunk($offset, $max); |
Get chunk of data starting from a specific position, defaults to a maximum chunk size of 131072
bytes (128KiB).
move_to
$mem = $mem->move_to('/home/sri/foo.txt');
Move asset data into a specific file.
size
my $size = $mem->size;
Size of asset data in bytes.
slurp
my $bytes = $mem->slurp;
Read all asset data at once.
to_file
my $file = $mem->to_file;
Convert asset to Mojo::Asset::File object.