File Coverage

blib/lib/Plack/Middleware/Debug/Redis/Keys.pm
Criterion Covered Total %
statement 27 27 100.0
branch 3 6 50.0
condition n/a
subroutine 6 6 100.0
pod 2 2 100.0
total 38 41 92.6


line stmt bran cond sub pod time code
1             package Plack::Middleware::Debug::Redis::Keys;
2              
3             # ABSTRACT: Redis keys debug panel
4              
5 1     1   40685 use strict;
  1         2  
  1         33  
6 1     1   4 use warnings;
  1         3  
  1         25  
7 1     1   6 use parent qw(Plack::Middleware::Debug::Base Plack::Middleware::Debug::Redis);
  1         2  
  1         9  
8              
9             our $VERSION = '0.03'; # VERSION
10             our $AUTHORITY = 'cpan:CHIM'; # AUTHORITY
11              
12             sub prepare_app {
13 1     1 1 123 my ($self) = @_;
14              
15 1         10 $self->redis_connect;
16             }
17              
18             sub run {
19 1     1 1 27067 my ($self, $env, $panel) = @_;
20              
21 1         5 $panel->title('Redis::Keys');
22 1         7 $panel->nav_title($panel->title);
23              
24 1         32 my %measure = (
25             'HASH' => 'hlen',
26             'LIST' => 'llen',
27             'STRING' => 'strlen',
28             'ZSET' => 'zcard',
29             'SET' => 'scard',
30             );
31              
32             return sub {
33 1     1   44 my ($res) = @_;
34              
35 1         2 my ($keyz, $ktype, $klen);
36 1         4 $self->redis->select($self->db);
37 1         99 my @keys = $self->redis->keys('*');
38 1         63 $panel->nav_subtitle('DB #' . $self->db . ' (' . scalar(@keys) . ')');
39              
40 1         16 for my $key (sort @keys) {
41 5         14 $ktype = uc($self->redis->type($key));
42              
43 5 50       286 my $method = exists $measure{$ktype} ? $measure{$ktype} : undef;
44              
45 5 50       17 $klen = $method ? $self->redis->$method($key) : undef;
46              
47 5 50       264 $keyz->{$key} = $ktype . ($klen ? ' (' . $klen . ')' : '');
48             }
49              
50 1         10 $panel->content($self->render_hash($keyz));
51 1         8 };
52             }
53              
54             1; # End of Plack::Middleware::Debug::Redis::Keys
55              
56             __END__