package Kwiki::Cache; use Kwiki::Plugin -Base; use Digest::MD5; our $VERSION = '0.11'; const class_id => 'cache'; const class_title => 'Generic Cache'; sub process { my $closure = shift; my $cache_name = Digest::MD5::md5_hex(join '!@#$', @_); my $path = $self->plugin_directory; my $io = io->catfile($path, $cache_name)->assert; unless ($io->exists) { $io->lock->mode('>>')->open; if ($io->empty) { $io->print(&$closure); } $io->close; } $io->scalar; } __DATA__ =head1 NAME Kwiki::Cache - Kwiki Cache Plugin =head1 SYNOPSIS =head1 DESCRIPTION =head1 AUTHOR Brian Ingerson =head1 COPYRIGHT Copyright (c) 2004. Brian Ingerson. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html =cut