/[Frey]/branches/zimbardo/lib/Frey/Session.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /branches/zimbardo/lib/Frey/Session.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 432 by dpavlin, Wed Nov 19 00:40:18 2008 UTC revision 1159 by dpavlin, Thu Jul 2 15:31:41 2009 UTC
# Line 1  Line 1 
1  package Frey::Session;  package Frey::Session;
2  use Moose::Role;  use Moose::Role;
3    
4  use DBM::Deep;  with 'Frey::Path', 'Frey::Storage';
5    
6  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
7    use Time::HiRes qw/time/;
8    use Carp qw/carp croak/;
9    
10  has 'usage' => (  has 'usage' => (
11            documentation => 'Track usage of classes for ClassBrowser',
12          is => 'rw',          is => 'rw',
13          isa => 'DBM::Deep',          isa => 'HashRef|Undef',
14          lazy => 1,          lazy => 1,
15          default => sub {          default => sub {
16                  DBM::Deep->new( 'var/usage.db' );                  my $self = shift;
17                    $self->load( 'var/session/usage.yaml' ) || {};
18          },          },
19  );  );
20    
21  sub data {  our $bugs;
22          my ($self) = @_;  
23    sub add_usage {
24            my ( $self, $class ) = @_;
25            $self->usage->{$class}++;
26            $self->store( 'var/session/usage.yaml', $self->usage );
27            # FIXME triggering bugs savings just once on each request, but is cludge!
28            $self->store( 'var/session/bugs.yaml', $bugs ) if delete $bugs->{save};
29    }
30    
31          my $data;  =head2 TODO
32    
33          my $db = $self->usage;    my $TODO = $self->TODO( "message" );
34    
35          my $key = $db->first_key();  =cut
     while ($key) {  
                 $data->{$key} = $db->get($key);  
                 $key = $db->next_key($key);  
         }  
36    
37          return $data;  sub TODO {
38            my ( $self, $what ) = @_;
39            eval {
40                    $bugs ||= $self->load( 'var/session/bugs.yaml' );
41    
42                    carp "TODO: $what" unless defined $bugs->{TODO}->{ $what };
43    
44                    my ( $package, $path, $line ) = caller;
45    
46                    $bugs->{TODO}->{ $what } = {
47                            last_occured => time,
48                            'package' => $package,
49                            path => $path,
50                            line => $line,
51                    };
52                    $bugs->{save}++;
53            };
54            warn "TODO ERROR: $@\n$what" if $@;
55            return $what;
56  }  }
57    
58    
59    no Moose::Role;
60    
61  1;  1;

Legend:
Removed from v.432  
changed lines
  Added in v.1159

  ViewVC Help
Powered by ViewVC 1.1.26