[Jifty-commit] r1075 - in jifty/trunk: lib/Jifty lib/Jifty/Web

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Tue May 16 17:46:15 EDT 2006


Author: alexmv
Date: Tue May 16 17:46:14 2006
New Revision: 1075

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/lib/Jifty/Dispatcher.pm
   jifty/trunk/lib/Jifty/Request.pm
   jifty/trunk/lib/Jifty/Web/PageRegion.pm

Log:
 r13039 at zoq-fot-pik:  chmrr | 2006-05-16 17:45:38 -0400
  * Requests know the top-level request
  * mason_internal_error's "try again" is to top level request


Modified: jifty/trunk/lib/Jifty/Dispatcher.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Dispatcher.pm	(original)
+++ jifty/trunk/lib/Jifty/Dispatcher.pm	Tue May 16 17:46:14 2006
@@ -1036,7 +1036,7 @@
         # Save the request away, and redirect to an error page
         Jifty->web->response->error($err);
         my $c = Jifty::Continuation->new(
-            request  => Jifty->web->request,
+            request  => Jifty->web->request->top_request,
             response => Jifty->web->response,
             parent   => Jifty->web->request->continuation,
         );

Modified: jifty/trunk/lib/Jifty/Request.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Request.pm	(original)
+++ jifty/trunk/lib/Jifty/Request.pm	Tue May 16 17:46:14 2006
@@ -4,7 +4,7 @@
 package Jifty::Request;
 
 use base qw/Jifty::Object Class::Accessor::Fast Clone/;
-__PACKAGE__->mk_accessors(qw(is_subrequest arguments just_validating path _continuation));
+__PACKAGE__->mk_accessors(qw(_top_request arguments just_validating path _continuation));
 
 use Jifty::JSON;
 use Jifty::YAML;
@@ -720,6 +720,31 @@
     }
 }
 
+=head2 is_subrequest
+
+Returns true if this request is a subrequest.
+
+=cut
+
+sub is_subrequest {
+    my $self = shift;
+    return $self->_top_request ? 1 : undef;
+}
+
+=head2 top_request
+
+Returns the top-level request for this request; if this is a
+subrequest, this is the user-created request that the handler got
+originally.  Otherwise, returns itself;
+
+=cut
+
+sub top_request {
+    my $self = shift;
+    $self->_top_request(@_) if @_;
+    return $self->_top_request || $self;
+}
+
 package Jifty::Request::Action;
 use base 'Class::Accessor::Fast';
 __PACKAGE__->mk_accessors( qw/moniker arguments class order active modified has_run/);

Modified: jifty/trunk/lib/Jifty/Web/PageRegion.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Web/PageRegion.pm	(original)
+++ jifty/trunk/lib/Jifty/Web/PageRegion.pm	Tue May 16 17:46:14 2006
@@ -267,10 +267,10 @@
     my $subrequest = Jifty::Request->new;
     $subrequest->from_webform(%arguments);
     $subrequest->path( $self->path );
+    $subrequest->top_request( Jifty->web->request->top_request );
 
     # Remove all of the actions
     $subrequest->clear_actions;
-    $subrequest->is_subrequest(1);
     local Jifty->web->{request} = $subrequest;
 
     # While we're inside this region, have Mason to tack its response


More information about the Jifty-commit mailing list