/[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 1159 - (show annotations)
Thu Jul 2 15:31:41 2009 UTC (14 years, 9 months ago) by dpavlin
File size: 1156 byte(s)
save bugs only when needed triggered by add_usage
1 package Frey::Session;
2 use Moose::Role;
3
4 with 'Frey::Path', 'Frey::Storage';
5
6 use Data::Dump qw/dump/;
7 use Time::HiRes qw/time/;
8 use Carp qw/carp croak/;
9
10 has 'usage' => (
11 documentation => 'Track usage of classes for ClassBrowser',
12 is => 'rw',
13 isa => 'HashRef|Undef',
14 lazy => 1,
15 default => sub {
16 my $self = shift;
17 $self->load( 'var/session/usage.yaml' ) || {};
18 },
19 );
20
21 our $bugs;
22
23 sub add_usage {
24 my ( $self, $class ) = @_;
25 $self->usage->{$class}++;
26 $self->store( 'var/session/usage.yaml', $self->usage );
27 # FIXME triggering bugs savings just once on each request, but is cludge!
28 $self->store( 'var/session/bugs.yaml', $bugs ) if delete $bugs->{save};
29 }
30
31 =head2 TODO
32
33 my $TODO = $self->TODO( "message" );
34
35 =cut
36
37 sub TODO {
38 my ( $self, $what ) = @_;
39 eval {
40 $bugs ||= $self->load( 'var/session/bugs.yaml' );
41
42 carp "TODO: $what" unless defined $bugs->{TODO}->{ $what };
43
44 my ( $package, $path, $line ) = caller;
45
46 $bugs->{TODO}->{ $what } = {
47 last_occured => time,
48 'package' => $package,
49 path => $path,
50 line => $line,
51 };
52 $bugs->{save}++;
53 };
54 warn "TODO ERROR: $@\n$what" if $@;
55 return $what;
56 }
57
58
59 no Moose::Role;
60
61 1;

  ViewVC Help
Powered by ViewVC 1.1.26