/[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 569 - (hide annotations)
Thu Nov 27 22:10:49 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 1304 byte(s)
open DBM::Deep just once
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 dpavlin 566 use Time::HiRes qw/time/;
11 dpavlin 428
12 dpavlin 569 our $usage = DBM::Deep->new( 'var/session/usage.db' );
13 dpavlin 428 has 'usage' => (
14 dpavlin 562 documentation => 'Track usage of classes for ClassBrowser',
15 dpavlin 428 is => 'rw',
16     isa => 'DBM::Deep',
17     lazy => 1,
18     default => sub {
19 dpavlin 569 $usage
20 dpavlin 428 },
21     );
22    
23 dpavlin 569 our $bugs = DBM::Deep->new( 'var/session/bugs.db' );
24 dpavlin 562 has 'bugs' => (
25     documentation => 'Track bugs within Frey',
26     is => 'rw',
27     isa => 'DBM::Deep',
28     lazy => 1,
29     default => sub {
30 dpavlin 569 $bugs
31 dpavlin 562 },
32     );
33 dpavlin 455 sub as_data {
34 dpavlin 428 my ($self) = @_;
35 dpavlin 562 {
36     usage => $self->session_dump( $self->usage ),
37     bugs => $self->session_dump( $self->bugs ),
38     }
39 dpavlin 434 }
40 dpavlin 428
41 dpavlin 434 sub session_dump {
42     my ($self,$db) = @_;
43 dpavlin 428 my $data;
44    
45     my $key = $db->first_key();
46     while ($key) {
47 dpavlin 432 $data->{$key} = $db->get($key);
48 dpavlin 428 $key = $db->next_key($key);
49     }
50    
51     return $data;
52     }
53    
54 dpavlin 562 sub TODO {
55     my ( $self, $what ) = @_;
56     eval {
57     $self->bugs = {} unless defined $self->bugs; # bootstrap
58     warn "TODO: $what" unless defined $self->bugs->{TODO}->{ $what };
59 dpavlin 566
60     my ( $package, $path, $line ) = caller;
61    
62     $self->bugs->{TODO}->{ $what } = {
63     last_occured => time,
64     'package' => $package,
65     path => $path,
66     line => $line,
67 dpavlin 562 }
68     };
69     warn "TODO ERROR: $@\n$what" if $@;
70     }
71    
72 dpavlin 428 1;

  ViewVC Help
Powered by ViewVC 1.1.26