diff options
author | Mamoru Tasaka <mtasaka@fedoraproject.org> | 2010-01-07 15:02:11 +0000 |
---|---|---|
committer | Mamoru Tasaka <mtasaka@fedoraproject.org> | 2010-01-07 15:02:11 +0000 |
commit | a647a236fc1e4b21425f94d2192615e6996674c7 (patch) | |
tree | 5205f9de8d6de5878ea0c3cabe029ef2874e3d42 /rubygem-actionpack-2.3.4-rack-compat.patch | |
parent | 0c7cf215aee39c98b3bff7a106a60bcb82252f97 (diff) | |
download | rubygem-actionpack-a647a236fc1e4b21425f94d2192615e6996674c7.tar.gz rubygem-actionpack-a647a236fc1e4b21425f94d2192615e6996674c7.tar.xz rubygem-actionpack-a647a236fc1e4b21425f94d2192615e6996674c7.zip |
- Workaround patch to fix for rack 1.1.0 dependency (bug 552972)
Diffstat (limited to 'rubygem-actionpack-2.3.4-rack-compat.patch')
-rw-r--r-- | rubygem-actionpack-2.3.4-rack-compat.patch | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/rubygem-actionpack-2.3.4-rack-compat.patch b/rubygem-actionpack-2.3.4-rack-compat.patch new file mode 100644 index 0000000..8583a21 --- /dev/null +++ b/rubygem-actionpack-2.3.4-rack-compat.patch @@ -0,0 +1,174 @@ +--- Rakefile.debug 2010-01-07 03:03:57.000000000 +0900 ++++ Rakefile 2010-01-07 03:05:36.000000000 +0900 +@@ -80,7 +80,7 @@ + s.requirements << 'none' + + s.add_dependency('activesupport', '= 2.3.4' + PKG_BUILD) +- s.add_dependency('rack', '~> 1.0.0') ++ s.add_dependency('rack', '>= 1.0.0') + + s.require_path = 'lib' + s.autorequire = 'action_controller' +--- lib/action_controller.rb.debug 2010-01-07 03:03:57.000000000 +0900 ++++ lib/action_controller.rb 2010-01-07 03:05:36.000000000 +0900 +@@ -31,7 +31,7 @@ + end + end + +-gem 'rack', '~> 1.0.0' ++gem 'rack', '>= 1.0.0' + require 'rack' + + module ActionController +--- lib/action_controller/integration.rb.debug 2010-01-07 03:03:57.000000000 +0900 ++++ lib/action_controller/integration.rb 2010-01-07 18:46:03.000000000 +0900 +@@ -320,9 +320,25 @@ + + @headers = Rack::Utils::HeaderHash.new(headers) + +- (@headers['Set-Cookie'] || "").split("\n").each do |cookie| +- name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2] +- @cookies[name] = value ++ # Umm.. it seems that with rack 1.1.0 @headers is an array ++ # instead of a string which rack 1.0.0 returned ++ # FIXME!! ++ ++ headers_cookie = @headers['Set-Cookie'] ++ if headers_cookie.is_a?(Array) ++ headers_cookie.each do |cookie_arr| ++ cookie_arr.split("\n").each do |cookie| ++ name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2] ++ @cookies[name] = value ++ end ++ end ++ ++ else ++ ++ (headers_cookie || "").split("\n").each do |cookie| ++ name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2] ++ @cookies[name] = value ++ end + end + + @body = "" +--- lib/action_controller/response.rb.debug 2010-01-07 03:03:57.000000000 +0900 ++++ lib/action_controller/response.rb 2010-01-07 19:40:44.000000000 +0900 +@@ -112,6 +112,12 @@ + end + + def etag? ++ ++ # FIXME!! ++ if Rack::VERSION[0] == 1 && Rack::VERSION[1] >= 1 ++ return headers.include?('ETag') && !headers['ETag'].nil? ++ end ++ + headers.include?('ETag') + end + +@@ -218,8 +224,15 @@ + # Don't set the Content-Length for block-based bodies as that would mean + # reading it all into memory. Not nice for, say, a 2GB streaming file. + def set_content_length! ++ ++ ## FIXME ++ + if status && status.to_s[0..2] == '204' + headers.delete('Content-Length') ++ ++ elsif Rack::VERSION[0] == 1 && Rack::VERSION[1] >= 1 && status && status.to_s[0..2] == '304' ++ headers.delete('Content-Length') ++ + elsif length = headers['Content-Length'] + headers['Content-Length'] = length.to_s + elsif !body.respond_to?(:call) && (!status || status.to_s[0..2] != '304') +--- test/controller/integration_test.rb.debug 2010-01-07 03:03:57.000000000 +0900 ++++ test/controller/integration_test.rb 2010-01-07 05:44:37.000000000 +0900 +@@ -306,7 +306,9 @@ + assert_equal "Gone", status_message + assert_response 410 + assert_response :gone +- assert_equal "cookie_1=; path=/\ncookie_3=chocolate; path=/", headers["Set-Cookie"] ++ # Okay if cookies coincides. ++ # With rake 1.1.0 headers["Set-Cookie"] is an array instread of a string ++ #assert_equal "cookie_1=; path=/\ncookie_3=chocolate; path=/", headers["Set-Cookie"] + assert_equal({"cookie_1"=>"", "cookie_2"=>"oatmeal", "cookie_3"=>"chocolate"}, cookies) + assert_equal "Gone", response.body + end +--- test/controller/rack_test.rb.debug 2010-01-07 03:03:57.000000000 +0900 ++++ test/controller/rack_test.rb 2010-01-07 05:40:49.000000000 +0900 +@@ -215,11 +215,16 @@ + + status, headers, body = @response.to_a + assert_equal 200, status ++ if headers['Set-Cookie'].is_a?(Array) ++ cookie_must = [] ++ else ++ cookie_must = "" ++ end + assert_equal({ + "Content-Type" => "text/html; charset=utf-8", + "Cache-Control" => "private, max-age=0, must-revalidate", + "ETag" => '"65a8e27d8879283831b664bd8b7f0ad4"', +- "Set-Cookie" => "", ++ "Set-Cookie" => cookie_must, + "Content-Length" => "13" + }, headers) + +@@ -234,11 +239,16 @@ + + status, headers, body = @response.to_a + assert_equal 200, status ++ if headers['Set-Cookie'].is_a?(Array) ++ cookie_must = [] ++ else ++ cookie_must = "" ++ end + assert_equal({ + "Content-Type" => "text/html; charset=utf-8", + "Cache-Control" => "private, max-age=0, must-revalidate", + "ETag" => '"ebb5e89e8a94e9dd22abf5d915d112b2"', +- "Set-Cookie" => "", ++ "Set-Cookie" => cookie_must, + "Content-Length" => "8" + }, headers) + end +@@ -251,10 +261,15 @@ + + status, headers, body = @response.to_a + assert_equal 200, status ++ if headers['Set-Cookie'].is_a?(Array) ++ cookie_must = [] ++ else ++ cookie_must = "" ++ end + assert_equal({ + "Content-Type" => "text/html; charset=utf-8", + "Cache-Control" => "no-cache", +- "Set-Cookie" => "" ++ "Set-Cookie" => cookie_must + }, headers) + + parts = [] +--- test/controller/session/cookie_store_test.rb.debug 2010-01-07 03:03:57.000000000 +0900 ++++ test/controller/session/cookie_store_test.rb 2010-01-07 05:47:37.000000000 +0900 +@@ -145,7 +145,8 @@ + with_test_route_set do + get '/no_session_access' + assert_response :success +- assert_equal "", headers['Set-Cookie'] ++ #assert_equal "", headers['Set-Cookie'] ++ assert headers['Set-Cookie'].empty? + end + end + +@@ -155,7 +156,8 @@ + "fef868465920f415f2c0652d6910d3af288a0367" + get '/no_session_access' + assert_response :success +- assert_equal "", headers['Set-Cookie'] ++ #assert_equal "", headers['Set-Cookie'] ++ assert headers['Set-Cookie'].empty? + end + end + |