Mojolicious::Plugin::Memorize - Memorize part of your Mojolicious template
use Mojolicious::Lite; plugin 'Memorize'; any '/' => 'index'; any '/reset' => sub { my $self = shift; $self->memorize->expire('access'); $self->redirect_to('/'); }; app->start; __DATA__ @@ index.html.ep %= memorize access => { expires => 0 } => begin This page was memorized on %= scalar localtime % end
This plugin provides the functionality to easily memorize a portion of a template, to prevent re-evaluation. This may be useful when a portion of your response is expensive to generate but changes rarely (a menu for example).
The memorize helper derives from the helper that was removed from Mojolicious at version 4.0, with two major changes. The underlying plugin object is returned when no arguments are passed and the system is resiliant against time jumps.
memorize
Mojolicious
memorize( [$name,] [$args,] [$template_block] )
When called with arguments, this helper wraps the functionality of the memorize method below. See its documentation for usage.
When called without arguments, the plugin object is returned, allowing the use of other plugin methods or access to the plugin's cache.
cache
A hash reference containing the memorized template content and other data.
expire( $name )
This method allows for manually expiring a memorized template block. This may useful if the template is set to never expire or when the underlying content is known to have changed.
This is an example of the utility of having access to the underlying hash. In the original implementation of the core helper, this access was not available.
memorize( [$name,] [$args,] $template_block )
This method behaves as the old helper did. It takes as many as three arguments, the final of which must be a template block (see "Blocks" in Mojolicious::Lite) to be memorized. The first argument may be a string which is the name (key) of the memorized template (used for later access); if this is not provided one will be generated. A hashref may also be passed in which is used for additional arguments.
As of this writing, the only available argument are duration and expires. The duration key specifies the number of seconds that the template should be memorized, while the expires key specifies a time (epoch seconds) after which the template should be re-evaluated. duration is the recommened usage, expires is provided for historical reasons, and is implemented using duration. If both are provided, duration is used.
duration
expires
Note that either key may be set to zero to prevent timed expiration.
register
This method is called upon loading the plugin and probably is not useful for other purposes.
Mojolicious::Plugin
Mojolicious::Guides::Rendering
http://github.com/jberger/Mojolicious-Plugin-Memorize
Copyright (C) 2013 by Joel Berger and Sebastian Riedel
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Mojolicious::Plugin::Memorize, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::Memorize
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::Memorize
For more information on module installation, please visit the detailed CPAN module installation guide.