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::MemoryはMojo::Assetからのすべてのイベントを継承し、次のイベントを発行します。
upgrade
$mem->on(upgrade => sub { my ($mem, $file) = @_; ... });
Mojo::Asset::Fileオブジェクトにアップグレードするときに発行されます。
$mem->on(upgrade => sub { my ($mem, $file) = @_; $file->tmpdir('/tmp'); });
属性
Mojo::Asset::MemoryはMojo::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::MemoryはMojo::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)