/[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 824 - (show annotations)
Fri Dec 12 23:20:06 2008 UTC (15 years, 4 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 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 use Carp qw/carp croak/;
12
13 our $usage = DBM::Deep->new( 'var/session/usage.db' );
14 has 'usage' => (
15 documentation => 'Track usage of classes for ClassBrowser',
16 is => 'rw',
17 isa => 'DBM::Deep',
18 lazy => 1,
19 default => sub {
20 $usage
21 },
22 );
23
24 our $bugs = DBM::Deep->new( 'var/session/bugs.db' );
25 has 'bugs' => (
26 documentation => 'Track bugs within Frey',
27 is => 'rw',
28 isa => 'DBM::Deep',
29 lazy => 1,
30 default => sub {
31 $bugs
32 },
33 );
34
35 =for debug
36
37 sub session_as_data {
38 my ($self) = @_;
39 {
40 usage => $self->session_dump( $self->usage ),
41 bugs => $self->session_dump( $self->bugs ),
42 }
43 }
44
45 =cut
46
47 sub session_dump {
48 my ($self,$db) = @_;
49 my $data;
50
51 my $key = $db->first_key();
52 while ($key) {
53 $data->{$key} = $db->get($key);
54 $key = $db->next_key($key);
55 }
56
57 return $data;
58 }
59
60 =head2 TODO
61
62 my $TODO = $self->TODO( "message" );
63
64 =cut
65
66 sub TODO {
67 my ( $self, $what ) = @_;
68 eval {
69 $self->bugs = {} unless defined $self->bugs; # bootstrap
70 carp "TODO: $what" unless defined $self->bugs->{TODO}->{ $what };
71
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 }
80 };
81 warn "TODO ERROR: $@\n$what" if $@;
82 return $what;
83 }
84
85 1;

  ViewVC Help
Powered by ViewVC 1.1.26