General fixes, docs, love (C::P::Cache)
[catagits/Catalyst-Plugin-Cache.git] / lib / Catalyst / Plugin / Cache / Curried.pm
CommitLineData
2e4bde89 1#!/usr/bin/perl
2
3package Catalyst::Plugin::Cache::Curried;
4
5use strict;
6use warnings;
7
8use base qw/Class::Accessor::Fast/;
9
10use Scalar::Util ();
11
12__PACKAGE__->mk_accessors(qw/c meta/);
13
14sub new {
15 my ( $class, $c, @meta ) = @_;
16
17 my $self = $class->SUPER::new({
18 c => $c,
19 meta => \@meta,
20 });
21
22 Scalar::Util::weaken( $self->{c} );
23
24 return $self;
25}
26
27sub backend {
28 my ( $self, $key ) = @_;
29 $self->c->choose_cache_backend( @{ $self->meta }, key => $key )
30}
31
32sub set {
33 my ( $self, $key, $value ) = @_;
34 $self->c->cache_set( $key, $value, @{ $self->meta } );
35}
36
37sub get {
38 my ( $self, $key ) = @_;
39 $self->c->cache_get( $key, @{ $self->meta } );
40}
41
aed484da 42sub remove {
2e4bde89 43 my ( $self, $key ) = @_;
aed484da 44 $self->c->cache_remove( $key, @{ $self->meta } );
2e4bde89 45}
46
47__PACKAGE__;
48
49__END__
50
51=pod
52
53=head1 NAME
54
55Catalyst::Plugin::Cache::Curried - Curried versions of C<cache_set>,
aed484da 56C<cache_get> and C<cache_remove> that look more like a backend.
2e4bde89 57
58=head1 SYNOPSIS
59
2e4bde89 60
61=head1 DESCRIPTION
62
63=cut
64
65