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

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

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

revision 428 by dpavlin, Tue Nov 18 23:49:05 2008 UTC revision 610 by dpavlin, Fri Nov 28 23:32:52 2008 UTC
# Line 1  Line 1 
1  package Frey::Session;  package Frey::Session;
2  use Moose::Role;  use Moose::Role;
3    
4    with 'Frey::Path';
5    
6    __PACKAGE__->mkbasepath( 'var/session/something.db' );
7    
8  use DBM::Deep;  use DBM::Deep;
9  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
10    use Time::HiRes qw/time/;
11    
12    our $usage = DBM::Deep->new( 'var/session/usage.db' );
13  has 'usage' => (  has 'usage' => (
14            documentation => 'Track usage of classes for ClassBrowser',
15          is => 'rw',          is => 'rw',
16          isa => 'DBM::Deep',          isa => 'DBM::Deep',
17          lazy => 1,          lazy => 1,
18          default => sub {          default => sub {
19                  DBM::Deep->new( 'var/usage.db' );                  $usage
20          },          },
21  );  );
22    
23  sub data {  our $bugs = DBM::Deep->new( 'var/session/bugs.db' );
24    has 'bugs' => (
25            documentation => 'Track bugs within Frey',
26            is => 'rw',
27            isa => 'DBM::Deep',
28            lazy => 1,
29            default => sub {
30                    $bugs
31            },
32    );
33    sub as_data {
34          my ($self) = @_;          my ($self) = @_;
35            {
36                    usage => $self->session_dump( $self->usage ),
37                    bugs => $self->session_dump( $self->bugs ),
38            }
39    }
40    
41    sub session_dump {
42            my ($self,$db) = @_;
43          my $data;          my $data;
44    
         my $db = $self->usage;  
   
45          my $key = $db->first_key();          my $key = $db->first_key();
46      while ($key) {      while ($key) {
47                  $data .= "$key => " . dump( $db->get($key) ) . "\n";                  $data->{$key} = $db->get($key);
48                  $key = $db->next_key($key);                  $key = $db->next_key($key);
49          }          }
50    
51          return $data;          return $data;
52  }  }
53    
54    =head2 TODO
55    
56      my $TODO = $self->TODO( "message" );
57    
58    =cut
59    
60    sub TODO {
61            my ( $self, $what ) = @_;
62            eval {
63                    $self->bugs = {} unless defined $self->bugs; # bootstrap
64                    warn "TODO: $what" unless defined $self->bugs->{TODO}->{ $what };
65    
66                    my ( $package, $path, $line ) = caller;
67    
68                    $self->bugs->{TODO}->{ $what } = {
69                            last_occured => time,
70                            'package' => $package,
71                            path => $path,
72                            line => $line,
73                    }
74            };
75            warn "TODO ERROR: $@\n$what" if $@;
76            return $what;
77    }
78    
79  1;  1;

Legend:
Removed from v.428  
changed lines
  Added in v.610

  ViewVC Help
Powered by ViewVC 1.1.26