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

Diff of /lib/PXElator/CouchDB.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 206 by dpavlin, Wed Aug 12 22:27:57 2009 UTC revision 210 by dpavlin, Thu Aug 13 12:00:38 2009 UTC
# Line 74  sub get { Line 74  sub get {
74    
75  sub put {  sub put {
76          my ($self, $url, $json) = @_;          my ($self, $url, $json) = @_;
         warn "put $url ",dump($json);  
77    
78          if ( ! defined $json->{_rev} ) {          if ( ! defined $json->{_rev} ) {
79                  my $old = eval { $self->get( $url )->{_rev} };                  my $old = eval { $self->get( $url )->{_rev} };
80                  $rev->{$url} = $json->{_rev} = $old if defined $old;                  $rev->{$url} = $json->{_rev} = $old if defined $old;
81          }          }
82    
83          $json = unbless dclone $json if blessed $json;          my $data = dclone $json;
84            $data = unbless $data if blessed $data;
85    
86          $json = JSON->new->utf8->encode( $json ) if $json;          warn dump( $data );
87    
88          $self->request(PUT => $url, $json);          $json = JSON->new->utf8->encode( $data );
89    
90            warn $json;
91    
92            do {
93                    eval { $self->request(PUT => $url, $json) };
94                    $rev->{$url} = $self->get( $url )->{_rev} if $@;
95            } until ! $@;
96  }  }
97    
98  sub post {  sub post {
# Line 100  sub audit { Line 107  sub audit {
107          my $data = pop @_;          my $data = pop @_;
108    
109          my $url = join(' ', @_);          my $url = join(' ', @_);
110          $url =~ s/-\S+//g;          $url =~ s/\s+-\S+//g;   # remove command line options
111          $url =~ s/\W+/-/g;          $url =~ s/\W+/-/g;
112    
113          my ( $package, undef, $line, $sub ) = caller(1);          my ( $package, $file, $line, $sub ) = caller(1);
114          ( $package, undef, $line ) = caller(0) if $package eq 'main';  #       ( $package, undef, $line ) = caller(0) if $package eq 'main';
115    
116            my $time = time();
117    
118            $data->{$_} = eval '$' . $_ foreach ( qw/time package line sub/ );
119    
120            warn 'audit ', dump($data), "at $file +$line\n";
121    
122          $data->{x_meta} = {          $time = int($time); # reduce granularity
123                  'ident' => [ @_ ],          $audit->put( "pxelator/$time.$package.$url", $data );
                 'time' => time(),  
                 'package' => $package,  
                 'line' => $line,  
                 'sub' => $sub,  
         };  
124    
         $audit->put( "pxelator/$package.$url", $data );  
125  }  }
126    
127  1;  1;

Legend:
Removed from v.206  
changed lines
  Added in v.210

  ViewVC Help
Powered by ViewVC 1.1.26