# $Id: /mirror/gungho/lib/Gungho/Handler/FileWriter/Simple.pm 1749 2007-06-10T08:52:31.230704Z lestrrat $ # # Copyrigt (c) 2007 Daisuke Maki # 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__ =head1 NAME Gungho::Handler::FileWriter::Simple - Write Out Fetched Contents To File =head1 DESCRIPTION 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. =head1 METHODS =head2 setup =head2 path_to =head2 handle_response =cut