[Jifty-commit] r4162 - in jifty/trunk: lib/Jifty

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Sep 28 14:44:06 EDT 2007


Author: jesse
Date: Fri Sep 28 14:44:05 2007
New Revision: 4162

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

Log:
 r67623 at pinglin:  jesse | 2007-09-28 14:43:47 -0400
 * When loading a web request from a data structure, don't totally throw away the path it was requested at.


Modified: jifty/trunk/lib/Jifty/Request.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Request.pm	(original)
+++ jifty/trunk/lib/Jifty/Request.pm	Fri Sep 28 14:44:05 2007
@@ -123,9 +123,9 @@
     # Check it for something appropriate
     if ($data) {
         if ($ct eq "text/x-json") {
-            return $self->from_data_structure(eval{Jifty::JSON::jsonToObj($data)});
+            return $self->from_data_structure(eval{Jifty::JSON::jsonToObj($data)}, $cgi);
         } elsif ($ct eq "text/x-yaml") {
-            return $self->from_data_structure(eval{Jifty::YAML::Load($data)});
+            return $self->from_data_structure(eval{Jifty::YAML::Load($data)}, $cgi);
         }
     }
 
@@ -146,7 +146,16 @@
 sub from_data_structure {
     my $self = shift;
     my $data = shift;
-    $self->path( Jifty::Util->canonicalize_path( $data->{path} || "/" ) );
+    my $cgi = shift;
+
+    my $path = $data->{'path'};
+    
+    unless ($path) {
+        $path = URI::Escape::uri_unescape($cgi->path_info);
+        $path =~ s/\?.*//;
+    };
+
+    $self->path( Jifty::Util->canonicalize_path( $path));
     $self->just_validating( $data->{validating} ) if $data->{validating};
 
     if ( ref $data->{continuation} eq "HASH" ) {


More information about the Jifty-commit mailing list