/[pxelator]/lib/PXElator/store.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 /lib/PXElator/store.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 492 - (hide annotations)
Mon Jan 25 17:55:55 2010 UTC (14 years, 3 months ago) by dpavlin
File size: 1252 byte(s)
remove debug output

1 dpavlin 481 package store;
2    
3     use warnings;
4     use strict;
5    
6 dpavlin 483 use POSIX;
7 dpavlin 485 use Time::HiRes qw/time/;
8 dpavlin 483
9 dpavlin 485 #use CouchDB;
10 dpavlin 481
11 dpavlin 485 use MongoDB;
12 dpavlin 481
13 dpavlin 483 my $conn = MongoDB::Connection->new;
14     my $db = $conn->get_database( 'pxelator' );
15     our $audit = $db->get_collection( 'audit' );
16    
17    
18     sub audit {
19     my $data = pop @_;
20    
21     my $url = join(' ', @_);
22     $url =~ s/\s+-\S+//g; # remove command line options
23     $url =~ s/\W+/-/g;
24    
25     my $time = time();
26    
27     my @caller = caller(0);
28     $caller[3] = (caller(1))[3];
29     $caller[3] =~ s{^.+::}{}; # stip package name from sub
30     $data->{package} = {
31     time => $time,
32     name => $caller[0],
33     line => $caller[2],
34     caller => $caller[3],
35     };
36    
37     if ( $ENV{DEBUG} ) {
38    
39     my $caller;
40     my $depth = 0;
41     while ( my @c = caller($depth) ) {
42     push @$caller, [ @c ];
43     $depth++;
44     }
45    
46     $data->{caller} = $caller;
47    
48     }
49    
50     # carp 'audit ', dump($data);
51    
52     # $time = int($time); # reduce granularity for url
53     $time = strftime("%Y-%m-%d.%H:%M:%S", localtime $time);
54     my $package = $caller[0];
55    
56 dpavlin 485 # CouchDB::_store_audit( "$time.$package.$url" => $data );
57 dpavlin 483
58 dpavlin 485 # $data->{_id} = "$time.$package.$url";
59     $audit->insert( $data );
60 dpavlin 483 }
61    
62    
63 dpavlin 487 sub query {
64     my $callback = shift;
65 dpavlin 492 my $cursor = $audit->query->sort({ '$natural' => -1 })->limit( 100 );
66 dpavlin 487 while( my $o = $cursor->next ) {
67     $callback->( $o );
68     }
69     }
70    
71 dpavlin 481 1;

  ViewVC Help
Powered by ViewVC 1.1.26