名前

Mojo::Asset::Memory - HTTPコンテンツのメモリストレージ

使い方

use Mojo::Asset::Memory;

my $mem = Mojo::Asset::Memory->new;
$mem->add_chunk('foo bar baz');
say $mem->slurp;

説明

Mojo::Asset::MemoryはHTTPコンテンツのためのメモリストレージのバックエンドです。

イベント

Mojo::Asset::MemoryMojo::Assetからのすべてのイベントを継承し、次のイベントを発行します。

upgrade

$mem->on(upgrade => sub {
  my ($mem, $file) = @_;
  ...
});

Mojo::Asset::Fileオブジェクトにアップグレードするときに発行されます。

$mem->on(upgrade => sub {
  my ($mem, $file) = @_;
  $file->tmpdir('/tmp');
});

属性

Mojo::Asset::MemoryMojo::Assetのすべての属性を継承しており、 次の新しい属性を実装しています。

auto_upgrade

my $bool = $mem->auto_upgrade;
$mem     = $mem->auto_upgrade($bool);

コンテンツのサイズがmax_memory_sizeの限界を超えたときに 自動的にMojo::Asset::Fileオブジェクトにアップロードするかどうかを設定。

max_memory_size

my $size = $mem->max_memory_size;
$mem     = $mem->max_memory_size(1024);

メモリ上に保存できる最大の資源バイトサイズ、この限界に達成した後にのみ、 Mojo::Asset::Fileへのアップグレードが試みられます。 デフォルトはMOJO_MAX_MEMORY_SIZEの値か、262144(256KB)です。

mtime

my $mtime = $mem->mtime;
$mem      = $mem->mtime(1408567500);

資源の修正時刻。デフォルトは、$^Tの値です。

メソッド

Mojo::Asset::MemoryMojo::Assetのすべてのメソッドを継承しており、 次の新しいメソッドを実装しています。

add_chunk

$mem     = $mem->add_chunk('foo bar baz');
my $file = $mem->add_chunk('abc' x 262144);

データのチャンクを資源に追加し、必要であればMojo::Asset::Fileにアップグレードします。

contains

my $position = $mem->contains('bar');

資源が、指定した文字列を含んでいるかをチェックします。

get_chunk

my $bytes = $mem->get_chunk($offset);
my $bytes = $mem->get_chunk($offset, $max);

指定した位置から始まる、データのチャンクを取得します。 最大チャンクサイズのデフォルトは131072バイト(128KB)です。

move_to

 $mem = $mem->move_to('/home/sri/foo.txt');

資源データを指定したファイルに移動します。

size

my $size = $mem->size;

資源データのバイトサイズです。

slurp

my $string = $mem->slurp;

一度にすべての資源データを読み込みます。

to_file

my $file = $mem->to_file;

資源をMojo::Asset::Fileオブジェクトに変換します。

参考

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

(2019/03/16 Mojolicious 8.12)

関連情報