File Coverage

blib/lib/File/OSS/Scan/Cache.pm
Criterion Covered Total %
statement 24 43 55.8
branch 0 6 0.0
condition 0 2 0.0
subroutine 8 13 61.5
pod 0 5 0.0
total 32 69 46.3


line stmt bran cond sub pod time code
1             =head1 NAME
2              
3             File::OSS::Scan::Cache - simple wrapper on L
4              
5             =head1 VERSION
6              
7             version 0.04
8              
9             =head1 SYNOPSIS
10              
11             use File::OSS::Scan::Cache;
12              
13             File::OSS::Scan::Cache->init($base_dir);
14              
15             File::OSS::Scan::Cache->set( $file_path => $h_file );
16             my $cached_file = File::OSS::Scan::Cache->get($file_path);
17              
18             File::OSS::Scan::Cache->clear();
19              
20             =head1 DESCRIPTION
21              
22             This is an internal module used by L to cache scan results into
23             files, and should not be called directly.
24              
25             =head1 SEE ALSO
26              
27             =over 4
28              
29             =item * L
30              
31             =back
32              
33             =head1 AUTHOR
34              
35             Harry Wang
36              
37             =head1 COPYRIGHT AND LICENSE
38              
39             This software is Copyright (c) 2014 by Harry Wang.
40              
41             This is free software, licensed under:
42              
43             Artistic License 1.0
44              
45             =cut
46              
47             package File::OSS::Scan::Cache;
48              
49 1     1   10 use strict;
  1         3  
  1         68  
50 1     1   6 use warnings FATAL => 'all';
  1         2  
  1         63  
51              
52 1     1   5 use Fatal qw( open close );
  1         2  
  1         9  
53 1     1   2431 use Carp;
  1         3  
  1         111  
54 1     1   6 use English qw( -no_match_vars );
  1         3  
  1         10  
55 1     1   738 use Data::Dumper; # for debug
  1         4  
  1         65  
56 1     1   1362 use Cache::FileCache;
  1         99658  
  1         61  
57              
58 1     1   12 use File::OSS::Scan::Constant qw(:all);
  1         2  
  1         616  
59              
60             our $VERSION = '0.04';
61              
62             our $cache = undef;
63              
64             sub init {
65 0     0 0   my $self = shift;
66 0   0       my $dir = shift || return SUCCESS;
67              
68 0           my $hash = {
69             'namespace' => $dir,
70             'default_expires_in' => 'never',
71             };
72              
73 0           $cache = new Cache::FileCache($hash);
74              
75 0           return SUCCESS;
76             }
77              
78             sub get {
79 0     0 0   my ( $self, $key ) = @_;
80 0           my $val = undef;
81              
82 0 0         ( defined $cache ) &&
83             ( $val = $cache->get($key) );
84              
85 0           return $val;
86             }
87              
88             sub set {
89 0     0 0   my ( $self, $key, $val ) = @_;
90              
91 0 0         ( defined $cache ) &&
92             ( $cache->set($key, $val) );
93              
94 0           return SUCCESS;
95             }
96              
97             sub clear {
98 0     0 0   my $self = shift;
99              
100 0 0         ( defined $cache ) &&
101             ( $cache->clear() );
102              
103 0           return SUCCESS;
104             }
105              
106             sub clear_all {
107 0     0 0   my $self = shift;
108              
109 0           my $pseudo_cache = new Cache::FileCache();
110 0           $pseudo_cache->Clear();
111              
112 0           return SUCCESS;
113             }
114              
115              
116              
117             1;