Gungho::Handler::FileWriter::Simple - Write Out Fetched Contents To File


Gungho documentation Contained in the Gungho distribution.

Index


Code Index:

NAME

Top

Gungho::Handler::FileWriter::Simple - Write Out Fetched Contents To File

DESCRIPTION

Top

This is a simple, dumb module mostly for demonstration purposes. It just writes out fetched contents to a single location in your file system.

In real life, you probably want to hash them to different locations, and put better names to the files.

METHODS

Top

setup

path_to

handle_response


Gungho documentation Contained in the Gungho distribution.

# $Id: /mirror/gungho/lib/Gungho/Handler/FileWriter/Simple.pm 1749 2007-06-10T08:52:31.230704Z lestrrat  $
#
# Copyrigt (c) 2007 Daisuke Maki <daisuke@endeworks.jp>
# All rights reserved.

package Gungho::Handler::FileWriter::Simple;
use strict;
use warnings;
use base qw(Gungho::Handler);
use File::Spec;
use Path::Class();
use URI::Escape qw(uri_escape);

__PACKAGE__->mk_accessors($_) for qw(dir);

sub setup
{
    my ($self, $c) = @_;

    $self->dir(
        Path::Class::Dir->new( $self->config->{dir} || File::Spec->tmpdir)
    );
    $self->next::method($c);
}

sub path_to
{
    my ($self, $req, $res) = @_;

    # Just writes to a file name that has been "properly" (for better
    # or for worse...) URl-encoded

    return $self->dir->file( uri_escape( $req->uri ) );
}

sub handle_response
{
    my ($self, $c, $req, $res) = @_;

    my $file = $self->path_to($req, $res);
    my $fh   = $file->openw() or die;

    $c->log->debug("Writing " . $req->uri . " to $file");

    $fh->print($res->content);
    $fh->close;
}

1;

__END__