Dancer::Route::Cache(3User Contributed Perl DocumentatiDancer::Route::Cache(3)NAMEDancer::Route::Cache - route caching mechanism for Dancer
SYNOPSIS
my $cache = Dancer::Route::Cache->new(
path_limit => 300, # optional
);
# storing a path
# /new/item/ is the path, $route is a compiled route
$cache->store_path( 'get', '/new/item/', $route );
my $cached_route = $cache->route_from_path('/new/item/');
DESCRIPTION
When Dancer first starts, it has to compile a regexp list of all the
routes. Then, on each request it goes over the compiled routes list
and tries to compare the requested path to a route.
A major drawback is that Dancer has to go over the matching on every
request, which (especially on CGI-based applications) can be very time
consuming.
The caching mechanism allows to cache some requests to specific routes
(but NOT specific results) and run those routes on a specific path.
This allows us to speed up Dancer quite a lot.
METHODS/SUBROUTINES
new(@args)
Creates a new route cache object.
my $cache = Dancer::Route::Cache->new(
path_limit => 100, # only 100 paths will be cached
size_limit => '30M', # max size for cache is 30MB
);
Please check the "ATTRIBUTES" section below to learn about the
arguments for "new()".
route_from_path($path)
Fetches the route from the path in the cache.
store_path( $method, $path => $route )
Stores the route in the cache according to the path and $method.
For developers: the reason we're using an object for this and not
directly using the registry hash is because we need to enforce the
limits.
parse_size($size)
Parses the size wanted to bytes. It can handle Kilobytes, Megabytes or
Gigabytes.
NOTICE: handles bytes, not bits!
my $bytes = $cache->parse_size('30M');
# doesn't need an existing object
$bytes = Dancer::Route::Cache->parse_size('300G'); # works this way too
route_cache_size
Returns a rough calculation the size of the cache. This is used to
enforce the size limit.
route_cache_paths
Returns all the paths in the cache. This is used to enforce the path
limit.
ATTRIBUTES
size_limit($limit)
Allows to set a size limit of the cache.
Returns the limit (post-set).
$cache->size_limit('10K'); # sets limit
my $limit = $cache->size_limit; # gets limit
path_limit($limit)
A path limit. That is, the amount of paths that whose routes will be
cached.
Returns the limit (post-set).
$cache->path_limit('100'); # sets limit
my $limit = $cache->path_limit; # gets limit
AUTHOR
Sawyer X
LICENSE AND COPYRIGHT
Copyright 2010 Sawyer X.
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
perl v5.14.1 2011-06-15 Dancer::Route::Cache(3)