Mojo::Asset::Memory - In-memory storage for HTTP content

  1. SYNOPSIS
  2. DESCRIPTION
  3. EVENTS
    1. upgrade
  4. ATTRIBUTES
    1. auto_upgrade
    2. max_memory_size
    3. mtime
  5. METHODS
    1. add_chunk
    2. contains
    3. get_chunk
    4. move_to
    5. size
    6. slurp
    7. to_file
  6. SEE ALSO

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.

SEE ALSO

Mojolicious, Mojolicious::Guides, https://mojolicious.org.