/[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 1159 - (hide 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 dpavlin 428 package Frey::Session;
2     use Moose::Role;
3    
4 dpavlin 1143 with 'Frey::Path', 'Frey::Storage';
5 dpavlin 562
6 dpavlin 428 use Data::Dump qw/dump/;
7 dpavlin 566 use Time::HiRes qw/time/;
8 dpavlin 651 use Carp qw/carp croak/;
9 dpavlin 428
10     has 'usage' => (
11 dpavlin 562 documentation => 'Track usage of classes for ClassBrowser',
12 dpavlin 428 is => 'rw',
13 dpavlin 1143 isa => 'HashRef|Undef',
14 dpavlin 428 lazy => 1,
15     default => sub {
16 dpavlin 1143 my $self = shift;
17 dpavlin 1145 $self->load( 'var/session/usage.yaml' ) || {};
18 dpavlin 428 },
19     );
20    
21 dpavlin 1159 our $bugs;
22    
23 dpavlin 1143 sub add_usage {
24     my ( $self, $class ) = @_;
25     $self->usage->{$class}++;
26     $self->store( 'var/session/usage.yaml', $self->usage );
27 dpavlin 1159 # 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 dpavlin 434 }
30 dpavlin 428
31 dpavlin 610 =head2 TODO
32    
33     my $TODO = $self->TODO( "message" );
34    
35     =cut
36    
37 dpavlin 562 sub TODO {
38     my ( $self, $what ) = @_;
39     eval {
40 dpavlin 1143 $bugs ||= $self->load( 'var/session/bugs.yaml' );
41 dpavlin 566
42 dpavlin 1143 carp "TODO: $what" unless defined $bugs->{TODO}->{ $what };
43    
44 dpavlin 566 my ( $package, $path, $line ) = caller;
45    
46 dpavlin 1143 $bugs->{TODO}->{ $what } = {
47 dpavlin 566 last_occured => time,
48     'package' => $package,
49     path => $path,
50     line => $line,
51 dpavlin 1159 };
52     $bugs->{save}++;
53 dpavlin 562 };
54     warn "TODO ERROR: $@\n$what" if $@;
55 dpavlin 610 return $what;
56 dpavlin 562 }
57    
58 dpavlin 1159
59 dpavlin 1133 no Moose::Role;
60    
61 dpavlin 428 1;

  ViewVC Help
Powered by ViewVC 1.1.26