Mojo::Asset::Memory

Section: User Contributed Perl Documentation (3)
Updated: 2018-11-22
Page Index
 

NAME

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 {
    my ($mem, $file) = @_;
    ...
  });

Emitted when asset gets upgraded to a Mojo::Asset::File object.

  $mem->on(upgrade => sub {
    my ($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>.


 

Index

NAME
SYNOPSIS
DESCRIPTION
EVENTS
upgrade
ATTRIBUTES
auto_upgrade
max_memory_size
mtime
METHODS
add_chunk
contains
get_chunk
move_to
size
slurp
to_file
SEE ALSO