File Coverage

blib/lib/OpenFrame/Cookies.pm
Criterion Covered Total %
statement 10 12 83.3
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 14 16 87.5


line stmt bran cond sub pod time code
1             package OpenFrame::Cookies;
2              
3 2     2   311467 use strict;
  2         5  
  2         1015  
4 2     2   15 use warnings::register;
  2         4  
  2         518  
5              
6             our $VERSION=3.05;
7              
8 2     2   1260 use OpenFrame::Cookie;
  2         6  
  2         57  
9 2     2   1358 use OpenFrame::Object;
  0            
  0            
10             use base qw ( OpenFrame::Object );
11              
12             sub init {
13             my $self = shift;
14             $self->cookies( {} );
15             }
16              
17             sub cookies {
18             my $self = shift;
19             my $val = shift;
20             if (defined( $val )) {
21             $self->{cookies} = $val;
22             return $self;
23             } else {
24             return $self->{cookies};
25             }
26             }
27              
28             sub set {
29             my $self = shift;
30             my $key = shift;
31             my $val = shift;
32              
33             if (defined($key) && !defined($val)) {
34             ## chances are we have a Cookie object
35             if ($key->isa('OpenFrame::Cookie')) {
36             ## get the name out of the cookie, and we store it
37             $self->cookies->{ $key->name } = $key;
38             } else {
39             $self->error("object $key is not an OpenFrame::Cookie");
40             return undef;
41             }
42             } elsif (defined($key) && defined($val)) {
43             ## right, we have a key value pair that we need to turn
44             ## into an OpenFrame::Cookie object
45              
46             my $cookie = OpenFrame::Cookie->new();
47             $cookie->name( $key );
48             $cookie->value( [ $val ] );
49              
50             ## call this method again with the cookie as the parameter
51             $self->set( $cookie );
52              
53             } else {
54             $self->error("usage: ->set( )");
55             }
56              
57             }
58              
59             sub get {
60             my $self = shift;
61             my $key = shift;
62             if (defined( $key )) {
63             return $self->cookies->{ $key };
64             } else {
65             $self->error("no key specified");
66             }
67             }
68              
69             sub delete {
70             my $self = shift;
71             my $key = shift;
72             if (defined( $key )) {
73             delete $self->{ cookies }->{ $key };
74             } else {
75             $self->error("no key specified");
76             }
77             }
78              
79             sub get_all {
80             my $self = shift;
81             return %{$self->cookies};
82             }
83              
84             1;
85              
86             __END__