NAME Mason::Plugin::Cache - Provide component cache object and filter VERSION version 0.05 SYNOPSIS my $result = $.cache->get('key'); if (!defined($result)) { ... compute $result ... $.cache->set('key', $result, '5 minutes'); } ... % $.Cache('key2', '1 hour') {{ % }} DESCRIPTION Adds a `cache' method and `Cache' filter to access a cache (CHI) object with a namespace unique to the component. INTERP PARAMETERS cache_defaults Hash of parameters passed to cache constructor. Defaults to driver=>'File', root_dir => 'DATA_DIR/cache' which will create a basic file cache under Mason's data directory. cache_root_class Class used to create a cache. Defaults to CHI. COMPONENT CLASS METHODS cache Returns a new cache object with the namespace set to the component's path. Parameters to this method, if any, are combined with cache_defaults and passed to the cache_root_class constructor. The cache object is memoized when no parameters are passed. my $result = $.cache->get('key'); REQUEST METHODS cache Same as calling `cache' on the current component class. This usage will be familiar to Mason 1 users. my $result = $m->cache->get('key'); FILTERS Cache ($key, $options, [%cache_params]) Caches the content using `$self->cache' and the supplied cache *$key*. *$options* is a scalar or hash reference. If a scalar, it is treated as the `expires_in' duration and passed as the third argument to `set'. If it is a hash reference, it may contain name/value pairs for both `get' and `set'. *%cache_params*, if any, are passed to `$self->cache'. % $.Cache($my_key, '1 hour') {{ % }} % $.Cache($my_key, { expire_if => sub { $.refresh } }, driver => 'RawMemory') {{ % }} If neither *$key* nor *$options* are passed, the key is set to 'Default' and the cache never expires. % $.Cache() {{ % }} SUPPORT The mailing list for Mason and Mason plugins is You must be subscribed to send a message. To subscribe, visit You can also visit us at `#mason' on irc:. Bugs and feature requests will be tracked at RT: The latest source code can be browsed and fetched at: git clone git:// SEE ALSO Mason AUTHOR Jonathan Swartz COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Jonathan Swartz. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.