From c389a52e2c21b5417790ad4313758d4b7a730db4 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Mon, 18 Mar 2013 00:09:01 +0900 Subject: [PATCH] Drop dependency on WEBrick::HTTPUtils. --- lib/http/cookie.rb | 6 ++++-- test/test_http_cookie.rb | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/http/cookie.rb b/lib/http/cookie.rb index e2173e4..23f4b93 100644 --- a/lib/http/cookie.rb +++ b/lib/http/cookie.rb @@ -1,7 +1,6 @@ require 'http/cookie/version' require 'time' require 'uri' -require 'webrick/httputils' require 'domain_name' module HTTP @@ -203,7 +202,10 @@ class HTTP::Cookie pair.strip! key, value = pair.split(/=/, 2) #/) next unless key - value = WEBrick::HTTPUtils.dequote(value.strip) if value + case value # may be nil + when /\A"(.*)"\z/ + value = $1.gsub(/\\(.)/, "\\1") + end case key.downcase when 'domain' diff --git a/test/test_http_cookie.rb b/test/test_http_cookie.rb index a76f581..c76c037 100644 --- a/test/test_http_cookie.rb +++ b/test/test_http_cookie.rb @@ -95,13 +95,14 @@ class TestHTTPCookie < Test::Unit::TestCase def test_parse_quoted cookie_str = - "quoted=\"value\"; Expires=Sun, 06 Nov 2011 00:11:18 GMT; Path=/" + "quoted=\"value\"; Expires=Sun, 06 Nov 2011 00:11:18 GMT; Path=/; comment=\"comment is \\\"comment\\\"\"" uri = URI.parse 'http://example' assert_equal 1, HTTP::Cookie.parse(cookie_str, :origin => uri) { |cookie| assert_equal 'quoted', cookie.name assert_equal '"value"', cookie.value + assert_equal 'comment is "comment"', cookie.comment }.size end