make profile optional
[MojoFacets.git] / lib / MojoFacets.pm
index 5e91832..ee69548 100644 (file)
@@ -14,22 +14,30 @@ use Time::HiRes qw(time);
 
 sub save_tx {
        my ($self,$tx) = @_;
-       warn "# before_dispatch req ",dump($tx->req->url, $tx->req->params);
+#      warn "## before_dispatch req ",dump($tx->req->url, $tx->req->params);
        my $parts = $tx->req->url->path->parts;
-       warn "## parts ",dump( $parts );
+       warn "# parts ",dump( $parts );
        if ( $parts->[0] eq 'data' ) {
+               if ( my $params = $tx->req->params ) {
 
-               my $path = '/tmp/changes/';
-               mkdir $path unless -e $path;
-               $path .= sprintf '%.4f.%s', time(), join('.', @$parts);
-               store $tx->req->params, $path;
-       #       $self->log->info( "$path ", -s $path, " bytes\n" );
-               warn "$path ", -s $path, " bytes\n";
+                       warn "# params ",dump($params);
 
+                       my $time = time();
+                       if ( my $time_travel = $params->param('time') ) {
+                               warn "# time-travel to $time_travel from ", $tx->remote_address;
+                               $time = $time_travel;
+                       }
+
+                       my $path = '/tmp/actions/';
+                       mkdir $path unless -e $path;
+                       $path .= sprintf '%.4f.%s', $time, join('.', @$parts);
+
+                       store $params, $path;
+                       warn "$path ", -s $path, " bytes\n";
+               }
        }
 }
 
-
 # This method will run once at server start
 sub startup {
     my $self = shift;
@@ -38,7 +46,7 @@ sub startup {
     my $r = $self->routes;
 
     # Default route
-    $r->route('/:controller/:action/:id')->to('data#index', id => 1);
+    $r->route('/:controller/:action/:id')->to('data#index', id => 0);
 
 #      $self->plugin( 'request_timer' );
 
@@ -49,6 +57,13 @@ sub startup {
                                save_tx( $self, $tx );
                        }
        );
+       
+       eval 'use MojoFacets::Plugin::NYTProf';
+       if ( $@ ) {
+               warn "profile disabled: $@" if $@;
+       } else {
+               MojoFacets::Plugin::NYTProf->register( $self );
+       }
 }