[ create a new paste ] login | about

Link: http://codepad.org/dFSEKOjc    [ raw code | fork ]

Perl, pasted on Nov 2:
#!/usr/bin/env perl
package Mojo::UserAgent::CookieJar::Role::Persistent;
use Mojo::Base 'Mojo::UserAgent::CookieJar';

use Mojo::Cookie::Response;
use Mojo::File;

has file        => sub { Mojo::File->new('cookies.txt') };
has expires_in  => sub { sub {time + 60} };

sub load {
  my $self = shift;

  foreach my $cookie (map {[split /\t/]} split /\R/, $self->file->slurp) {
    next if $#$cookie != 6;
    my %cookie;
    @cookie{qw[domain flag path secure expires name value]} = @{$cookie};
    delete $cookie{flag};
    $cookie{secure} = $cookie{secure} eq 'TRUE' ? 1 : 0;
    $self->add(Mojo::Cookie::Response->new(%cookie)); 
  }

  return $self;
}

sub save {
  my ($self, $session) = @_;

  my @cookies;
  foreach my $cookie (@{$self->all}) {
    push @cookies, [
      $cookie->domain // ($session ? $cookie->origin : next),
      ($session) ? 'TRUE' : 'FALSE',
      $cookie->path,
      ($cookie->secure) ? 'TRUE' : 'FALSE',
      $cookie->expires // ($session ? $self->expires_in->() : next),
      $cookie->name,
      $cookie->value,
    ];
  }
  $self->file->spurt(join "\n", map { join "\t", @{$_} } @cookies);

  return $self;
}


Create a new paste based on this one


Comments: