CGI-Application-Plugin-CaptureIO

 view release on metacpan or  search on metacpan

CaptureIO.pm  view on Meta::CPAN

                                       CAPTURE_TTL     => $args{capture_ttl} || $CAPTURE_TTL,
                                       CAPTURE_DIR     => $args{capture_dir} || $CAPTURE_DIR,
                                       NON_CAPTURE_RM  => (ref($args{non_capture_rm}) eq "ARRAY") ? { map { $_ => 1 } @{$args{non_capture_rm}} } : {},
                                      };

    if($self->{__CAP_CAPTUREIO_CONFIG}->{CAPTURE_CLEAR}){
# capture auto clear
        find(sub {
        
            my $ttl = $self->{__CAP_CAPTUREIO_CONFIG}->{CAPTURE_TTL};
            my $st = stat($_);
            if(-d $_ && (time - $st->atime) > $ttl){
                rmtree($File::Find::dir, 0);
            }elsif(-e $_ && -B $_){

                if($_ =~ /^$CAPTURE_PREFIX/ && (time - $st->atime) > $ttl){
                    unlink $File::Find::name;
                }
            }
        }, 
        $self->{__CAP_CAPTUREIO_CONFIG}->{CAPTURE_DIR});

CaptureIO.pm  view on Meta::CPAN

    my($self, $rm) = @_;
    return if $ENV{REQUEST_METHOD} eq "POST";

    my $digest = $self->{__CAP_CAPTUREIO_CONFIG}->{CAPTURE_DIGEST};
    my $ttl = $self->{__CAP_CAPTUREIO_CONFIG}->{CAPTURE_TTL};
    my $capture_dir = _capture_dir($self);
    my $capture = File::Spec->catfile($capture_dir, $CAPTURE_PREFIX . $digest);

    if(-e $capture && -B $capture){

        my $st = stat($capture);
        if((time - $st->mtime) <= $ttl){

            my $ref = Storable::retrieve($capture);
            $self->run_modes( $CAPTURE_MODE => sub {
                
                    my $self = shift;
                    $self->header_props(%{$ref->{header}});
                    return ${$ref->{body}};
                });
            $self->prerun_mode($CAPTURE_MODE);



( run in 1.398 second using v1.01-cache-2.11-cpan-49f99fa48dc )