diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-26 02:49:09 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-26 02:49:09 +0000 |
commit | 04fda65306e5779d89a93ec3e9e7cf8541ead144 (patch) | |
tree | eef94d964ba349a2a4ff71d0ae0295b4149a1ff0 | |
parent | 9e054fdf417078763e80ba975dde5672017ebf9f (diff) | |
download | rails-04fda65306e5779d89a93ec3e9e7cf8541ead144.tar.gz rails-04fda65306e5779d89a93ec3e9e7cf8541ead144.tar.bz2 rails-04fda65306e5779d89a93ec3e9e7cf8541ead144.zip |
Changed the POST parameter processing to use the new QueryStringParser and make the result a indifferent hash [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4821 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rwxr-xr-x | actionpack/lib/action_controller/cgi_ext/cgi_methods.rb | 2 | ||||
-rw-r--r-- | actionpack/lib/action_controller/cgi_process.rb | 2 | ||||
-rwxr-xr-x | actionpack/test/controller/cgi_test.rb | 5 |
4 files changed, 7 insertions, 4 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 756778f5e0..e1775a8b34 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Changed the POST parameter processing to use the new QueryStringParser and make the result a indifferent hash [DHH] + * Add UrlWriter to allow writing urls from Mailers and scripts. [Nicholas Seckar] * Clean up and run the Active Record integration tests by default. #5854 [kevin.clark@gmail.com, Jeremy Kemper] diff --git a/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb b/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb index 5f4f8d80d5..0bd6ae5bdd 100755 --- a/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb +++ b/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb @@ -156,7 +156,7 @@ class CGIMethods #:nodoc: end - return result + return result.with_indifferent_access end # Skip over the current term by scanning past the next &, or to diff --git a/actionpack/lib/action_controller/cgi_process.rb b/actionpack/lib/action_controller/cgi_process.rb index e983912158..d409c66a8a 100644 --- a/actionpack/lib/action_controller/cgi_process.rb +++ b/actionpack/lib/action_controller/cgi_process.rb @@ -68,7 +68,7 @@ module ActionController #:nodoc: if ActionController::Base.param_parsers.has_key?(content_type) CGIMethods.parse_formatted_request_parameters(content_type, @env['RAW_POST_DATA']) else - CGIMethods.parse_request_parameters(@cgi.params) + CGIMethods.parse_query_parameters(@env['RAW_POST_DATA'] || "") end end diff --git a/actionpack/test/controller/cgi_test.rb b/actionpack/test/controller/cgi_test.rb index 174fe96952..be0ed1feef 100755 --- a/actionpack/test/controller/cgi_test.rb +++ b/actionpack/test/controller/cgi_test.rb @@ -27,7 +27,9 @@ class CGITest < Test::Unit::TestCase end def test_deep_query_string - assert_equal({'x' => {'y' => {'z' => '10'}}}, CGIMethods.parse_query_parameters('x[y][z]=10')) + expected = {'x' => {'y' => {'z' => '10'}}} + assert_equal(expected, CGIMethods.parse_query_parameters('x[y][z]=10')) + assert_equal("10", CGIMethods.parse_query_parameters('x[y][z]=10')[:x][:y][:z]) end def test_deep_query_string_with_array @@ -38,7 +40,6 @@ class CGITest < Test::Unit::TestCase def test_deep_query_string_with_array_of_hash assert_equal({'x' => {'y' => [{'z' => '10'}]}}, CGIMethods.parse_query_parameters('x[y][][z]=10')) assert_equal({'x' => {'y' => [{'z' => '10', 'w' => '10'}]}}, CGIMethods.parse_query_parameters('x[y][][z]=10&x[y][][w]=10')) - assert_equal({'x' => [{'y' => {'z' => '10', 'w' => '10'}}]}, CGIMethods.parse_query_parameters('x[][y][z]=10&x[][y][w]=10')) end def test_deep_query_string_with_array_of_hashes_with_one_pair |