summary refs log tree commit
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-12-20 20:50:15 -0600
committerJoshua Peek <josh@joshpeek.com>2009-12-20 20:50:15 -0600
commitd8ccbf37576d53fe37489d818b63def524df1a44 (patch)
tree3e5b802174d162e2b0ba3eb952e0803345d57b50
parentfb32ff74f1e68650b7b4fa9889d277ef1fd30380 (diff)
downloadrack-d8ccbf37576d53fe37489d818b63def524df1a44.tar.gz
Extract parse_query and parse_multipart in Request so subclasses
can change their behavior [#71 state:resolved]
-rw-r--r--lib/rack/request.rb17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/rack/request.rb b/lib/rack/request.rb
index d15273a6..957abbb5 100644
--- a/lib/rack/request.rb
+++ b/lib/rack/request.rb
@@ -124,8 +124,7 @@ module Rack
         @env["rack.request.query_hash"]
       else
         @env["rack.request.query_string"] = query_string
-        @env["rack.request.query_hash"]   =
-          Utils.parse_nested_query(query_string)
+        @env["rack.request.query_hash"]   = parse_query(query_string)
       end
     end
 
@@ -140,15 +139,14 @@ module Rack
         @env["rack.request.form_hash"]
       elsif form_data? || parseable_data?
         @env["rack.request.form_input"] = @env["rack.input"]
-        unless @env["rack.request.form_hash"] =
-            Utils::Multipart.parse_multipart(env)
+        unless @env["rack.request.form_hash"] = parse_multipart(env)
           form_vars = @env["rack.input"].read
 
           # Fix for Safari Ajax postings that always append \0
           form_vars.sub!(/\0\z/, '')
 
           @env["rack.request.form_vars"] = form_vars
-          @env["rack.request.form_hash"] = Utils.parse_nested_query(form_vars)
+          @env["rack.request.form_hash"] = parse_query(form_vars)
 
           @env["rack.input"].rewind
         end
@@ -256,5 +254,14 @@ module Rack
         @env['REMOTE_ADDR']
       end
     end
+
+    protected
+      def parse_query(qs)
+        Utils.parse_nested_query(qs)
+      end
+
+      def parse_multipart(env)
+        Utils::Multipart.parse_multipart(env)
+      end
   end
 end