diff options
author | Joshua Peek <josh@joshpeek.com> | 2009-12-20 20:50:15 -0600 |
---|---|---|
committer | Joshua Peek <josh@joshpeek.com> | 2009-12-20 20:50:15 -0600 |
commit | d8ccbf37576d53fe37489d818b63def524df1a44 (patch) | |
tree | 3e5b802174d162e2b0ba3eb952e0803345d57b50 | |
parent | fb32ff74f1e68650b7b4fa9889d277ef1fd30380 (diff) | |
download | rack-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.rb | 17 |
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 |