名前

Mojo::UserAgent::CookieJar - HTTPユーザーエージェントのためのクッキーの入れ物

使い方

use Mojo::UserAgent::CookieJar;

# レスポンスクッキーを追加
my $jar = Mojo::UserAgent::CookieJar->new;
$jar->add(
  Mojo::Cookie::Response->new(
    name   => 'foo',
    value  => 'bar',
    domain => 'localhost',
    path   => '/test'
  )
);

# リクエストクッキーを見つける
for my $cookie ($jar->find(Mojo::URL->new('http://localhost/test'))) {
  say $cookie->name;
  say $cookie->value;
}

説明

Mojo::UserAgent::CookieJarはRFC 6265で定義されている HTTPユーザーエージェントのための最小限で緩やかなのクッキーの入れ物です。

属性

Mojo::UserAgent::CookieJarは次の属性を実装しています。

ignore

my $ignore = $jar->ignore;
$jar       = $jar->ignore(sub {...});

クッキーが"collect"によって無視されるべきかを決定するのに利用されるコールバック。

# すべてのクッキーを無視
$jar->ignore(sub { 1 });

# "com", "net" と "org" のドメインを無視
$jar->ignore(sub {
  my $cookie = shift;
  return undef unless my $domain = $cookie->domain;
  return $domain eq 'com' || $domain eq 'net' || $domain eq 'org';
});

max_cookie_size

my $max_cookie_size = $jar->max_cookie_size;
$jar                = $jar->max_cookie_size(4096);

クッキージャーの最大のバイトサイズ。デフォルトは、4096 (4KB)。

メソッド

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

add

$jar = $jar->add(@cookies);

複数のMojo::Cookie::Responseオブジェクトを入れ物に追加します。

all

my $cookies = $jar->all;

入れ物に現在保存されているすべてのMojo::Cookie::Responseオブジェクトを返却します。

# すべてのクッキーの名前
say $_->name for @{$jar->all};

collect

$jar->collect(Mojo::Transaction::HTTP->new);

トランザクションからレスポンスクッキーを収集します。

empty

$jar->empty;

入れ物を空にします。

find

my $cookies = $jar->find(Mojo::URL->new);

入れ物の中からMojo::URLオブジェクトに対応するMojo::Cookie::Requestオブジェクトを探します。

# すべての発見されたクッキーの名前
say $_->name for @{$jar->find(Mojo::URL->new('http://example.com/foo'))};

prepare

$jar->prepare(Mojo::Transaction::HTTP->new);

トランザクションのために、リクエストクッキーを準備します。

参考

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

(Mojolicious 8.12を反映。2019年5月30日更新)

関連情報