/[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 824 - (hide annotations)
Fri Dec 12 23:20:06 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 1430 byte(s)
remove session_as_data as it's mainly useful for debugging
and we don't really want it in every class
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 651 use Carp qw/carp croak/;
12 dpavlin 428
13 dpavlin 569 our $usage = DBM::Deep->new( 'var/session/usage.db' );
14 dpavlin 428 has 'usage' => (
15 dpavlin 562 documentation => 'Track usage of classes for ClassBrowser',
16 dpavlin 428 is => 'rw',
17     isa => 'DBM::Deep',
18     lazy => 1,
19     default => sub {
20 dpavlin 569 $usage
21 dpavlin 428 },
22     );
23    
24 dpavlin 569 our $bugs = DBM::Deep->new( 'var/session/bugs.db' );
25 dpavlin 562 has 'bugs' => (
26     documentation => 'Track bugs within Frey',
27     is => 'rw',
28     isa => 'DBM::Deep',
29     lazy => 1,
30     default => sub {
31 dpavlin 569 $bugs
32 dpavlin 562 },
33     );
34 dpavlin 824
35     =for debug
36    
37 dpavlin 655 sub session_as_data {
38 dpavlin 428 my ($self) = @_;
39 dpavlin 562 {
40     usage => $self->session_dump( $self->usage ),
41     bugs => $self->session_dump( $self->bugs ),
42     }
43 dpavlin 434 }
44 dpavlin 428
45 dpavlin 824 =cut
46    
47 dpavlin 434 sub session_dump {
48     my ($self,$db) = @_;
49 dpavlin 428 my $data;
50    
51     my $key = $db->first_key();
52     while ($key) {
53 dpavlin 432 $data->{$key} = $db->get($key);
54 dpavlin 428 $key = $db->next_key($key);
55     }
56    
57     return $data;
58     }
59    
60 dpavlin 610 =head2 TODO
61    
62     my $TODO = $self->TODO( "message" );
63    
64     =cut
65    
66 dpavlin 562 sub TODO {
67     my ( $self, $what ) = @_;
68     eval {
69     $self->bugs = {} unless defined $self->bugs; # bootstrap
70 dpavlin 651 carp "TODO: $what" unless defined $self->bugs->{TODO}->{ $what };
71 dpavlin 566
72     my ( $package, $path, $line ) = caller;
73    
74     $self->bugs->{TODO}->{ $what } = {
75     last_occured => time,
76     'package' => $package,
77     path => $path,
78     line => $line,
79 dpavlin 562 }
80     };
81     warn "TODO ERROR: $@\n$what" if $@;
82 dpavlin 610 return $what;
83 dpavlin 562 }
84    
85 dpavlin 428 1;

  ViewVC Help
Powered by ViewVC 1.1.26