File Coverage

blib/lib/Serengeti/Session/Persistent.pm
Criterion Covered Total %
statement 39 41 95.1
branch 4 10 40.0
condition n/a
subroutine 9 9 100.0
pod 0 2 0.0
total 52 62 83.8


line stmt bran cond sub pod time code
1             package Serengeti::Session::Persistent;
2              
3 1     1   4 use strict;
  1         3  
  1         28  
4 1     1   5 use warnings;
  1         1  
  1         22  
5              
6 1     1   4 use File::Spec;
  1         1  
  1         25  
7 1     1   5 use File::Path qw(mkpath);
  1         2  
  1         65  
8              
9 1     1   5 use base qw(Serengeti::Session);
  1         1  
  1         128  
10              
11 1     1   989 use accessors qw(log);
  1         1116  
  1         8  
12              
13             sub new {
14 1     1 0 2 my ($pkg, $args) = @_;
15              
16 1         3 my $name = $args->{name};
17              
18 1         2 my $parent;
19 1 50       4 if (exists $args->{parent_dir}) {
20 0         0 $parent = $args->{parent_dir};
21 0 0       0 $parent = File::Spec->catdir(@$parent) if ref $parent eq "ARRAY";
22             }
23             else {
24 1         117 $parent = File::Spec->tmpdir;
25 1         188 warn "No parent_dir supplied, assuming tmpdir which is: $parent";
26            
27             }
28              
29 1         14 my $session_dir = File::Spec->catdir($parent, $name);
30 1 50       26 mkpath($session_dir) unless -e $session_dir;
31              
32 1         15 my $log_path = File::Spec->catfile($session_dir, "actions.log");
33 1 50       132 open my $log, ">", $log_path or die "Can't open session log: $!";
34              
35 1         10 my $self = bless {
36             name => $name,
37             session_dir => $session_dir,
38             log => $log,
39             stash => {},
40             }, $pkg;
41              
42 1         6 $self->log_action("Created session", "backend: foo");
43            
44 1         5 return $self;
45             }
46              
47             sub log_action {
48 1     1 0 4 my ($self, $action, @info) = @_;
49              
50 1         9 my $log = $self->{log};
51 1 50       5 return unless $log;
52 1         24 my ($sec, $min, $hour, $day, $mon, $year) = gmtime(time);
53              
54 1         11 my $ts = sprintf("%4d-%02d-%02d %02d:%02d:%02d",
55             $year + 1900, $mon + 1, $day, $hour, $min, $sec);
56              
57 1         20 print $log "[$ts] $action - ", join(" | ", @info), "\n";
58              
59 1         4 1;
60             }
61              
62             sub DESTROY {
63 1     1   1212 my $self = shift;
64             }
65              
66             1;