--- trunk/lib/Frey/Session.pm 2008/11/19 01:21:31 434 +++ trunk/lib/Frey/Session.pm 2008/11/29 22:02:08 627 @@ -1,21 +1,42 @@ package Frey::Session; use Moose::Role; +with 'Frey::Path'; + +__PACKAGE__->mkbasepath( 'var/session/something.db' ); + use DBM::Deep; use Data::Dump qw/dump/; +use Time::HiRes qw/time/; +use Carp qw/croak/; +our $usage = DBM::Deep->new( 'var/session/usage.db' ); has 'usage' => ( + documentation => 'Track usage of classes for ClassBrowser', is => 'rw', isa => 'DBM::Deep', lazy => 1, default => sub { - DBM::Deep->new( 'var/usage.db' ); + $usage }, ); -sub data { +our $bugs = DBM::Deep->new( 'var/session/bugs.db' ); +has 'bugs' => ( + documentation => 'Track bugs within Frey', + is => 'rw', + isa => 'DBM::Deep', + lazy => 1, + default => sub { + $bugs + }, +); +sub as_data { my ($self) = @_; - $self->session_dump( $self->usage ); + { + usage => $self->session_dump( $self->usage ), + bugs => $self->session_dump( $self->bugs ), + } } sub session_dump { @@ -31,4 +52,29 @@ return $data; } +=head2 TODO + + my $TODO = $self->TODO( "message" ); + +=cut + +sub TODO { + my ( $self, $what ) = @_; + eval { + $self->bugs = {} unless defined $self->bugs; # bootstrap + croak "TODO: $what" unless defined $self->bugs->{TODO}->{ $what }; + + my ( $package, $path, $line ) = caller; + + $self->bugs->{TODO}->{ $what } = { + last_occured => time, + 'package' => $package, + path => $path, + line => $line, + } + }; + warn "TODO ERROR: $@\n$what" if $@; + return $what; +} + 1;