/[Frey]/trunk/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

Annotation of /trunk/lib/Frey/Session.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 562 - (hide annotations)
Thu Nov 27 21:04:35 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 1146 byte(s)
implement $self->TODO to track bugs and report them on first invocation
1 dpavlin 428 package Frey::Session;
2     use Moose::Role;
3    
4 dpavlin 562 with 'Frey::Path';
5    
6     __PACKAGE__->mkbasepath( 'var/session/something.db' );
7    
8 dpavlin 428 use DBM::Deep;
9     use Data::Dump qw/dump/;
10    
11     has 'usage' => (
12 dpavlin 562 documentation => 'Track usage of classes for ClassBrowser',
13 dpavlin 428 is => 'rw',
14     isa => 'DBM::Deep',
15     lazy => 1,
16     default => sub {
17 dpavlin 562 DBM::Deep->new( 'var/session/usage.db' );
18 dpavlin 428 },
19     );
20    
21 dpavlin 562 has 'bugs' => (
22     documentation => 'Track bugs within Frey',
23     is => 'rw',
24     isa => 'DBM::Deep',
25     lazy => 1,
26     default => sub {
27     DBM::Deep->new( 'var/session/bugs.db' );
28     },
29     );
30 dpavlin 455 sub as_data {
31 dpavlin 428 my ($self) = @_;
32 dpavlin 562 {
33     usage => $self->session_dump( $self->usage ),
34     bugs => $self->session_dump( $self->bugs ),
35     }
36 dpavlin 434 }
37 dpavlin 428
38 dpavlin 434 sub session_dump {
39     my ($self,$db) = @_;
40 dpavlin 428 my $data;
41    
42     my $key = $db->first_key();
43     while ($key) {
44 dpavlin 432 $data->{$key} = $db->get($key);
45 dpavlin 428 $key = $db->next_key($key);
46     }
47    
48     return $data;
49     }
50    
51 dpavlin 562
52     sub TODO {
53     my ( $self, $what ) = @_;
54     eval {
55     $self->bugs = {} unless defined $self->bugs; # bootstrap
56     warn "TODO: $what" unless defined $self->bugs->{TODO}->{ $what };
57     $self->bugs->{TODO}->{ $what }->{ time() } = {
58     backtrace => caller,
59     }
60     };
61     warn "TODO ERROR: $@\n$what" if $@;
62     }
63    
64 dpavlin 428 1;

  ViewVC Help
Powered by ViewVC 1.1.26