/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 566 - (show annotations)
Thu Nov 27 21:32:07 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 1266 byte(s)
record structured TODO
1 package Frey::Session;
2 use Moose::Role;
3
4 with 'Frey::Path';
5
6 __PACKAGE__->mkbasepath( 'var/session/something.db' );
7
8 use DBM::Deep;
9 use Data::Dump qw/dump/;
10 use Time::HiRes qw/time/;
11
12 has 'usage' => (
13 documentation => 'Track usage of classes for ClassBrowser',
14 is => 'rw',
15 isa => 'DBM::Deep',
16 lazy => 1,
17 default => sub {
18 DBM::Deep->new( 'var/session/usage.db' );
19 },
20 );
21
22 has 'bugs' => (
23 documentation => 'Track bugs within Frey',
24 is => 'rw',
25 isa => 'DBM::Deep',
26 lazy => 1,
27 default => sub {
28 DBM::Deep->new( 'var/session/bugs.db' );
29 },
30 );
31 sub as_data {
32 my ($self) = @_;
33 {
34 usage => $self->session_dump( $self->usage ),
35 bugs => $self->session_dump( $self->bugs ),
36 }
37 }
38
39 sub session_dump {
40 my ($self,$db) = @_;
41 my $data;
42
43 my $key = $db->first_key();
44 while ($key) {
45 $data->{$key} = $db->get($key);
46 $key = $db->next_key($key);
47 }
48
49 return $data;
50 }
51
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
58 my ( $package, $path, $line ) = caller;
59
60 $self->bugs->{TODO}->{ $what } = {
61 last_occured => time,
62 'package' => $package,
63 path => $path,
64 line => $line,
65 }
66 };
67 warn "TODO ERROR: $@\n$what" if $@;
68 }
69
70 1;

  ViewVC Help
Powered by ViewVC 1.1.26