diff --git a/lib/http/cookie.rb b/lib/http/cookie.rb index f78c4bc..9dd4209 100644 --- a/lib/http/cookie.rb +++ b/lib/http/cookie.rb @@ -56,7 +56,9 @@ class HTTP::Cookie for_domain = false attr_hash.each_pair { |key, val| skey = key.to_s.downcase - skey.sub!(/[!?]\z/, '') + if skey.sub!(/\?\z/, '') + val = val ? true : false + end case skey when 'for_domain' for_domain = !!val diff --git a/test/test_http_cookie.rb b/test/test_http_cookie.rb index c24bcba..1b9bc3d 100644 --- a/test/test_http_cookie.rb +++ b/test/test_http_cookie.rb @@ -455,6 +455,13 @@ class TestHTTPCookie < Test::Unit::TestCase assert_equal 'key', cookie.name assert_equal 'value', cookie.value assert_equal expires, cookie.expires + + cookie = HTTP::Cookie.new(:value => 'value', :name => 'key', :expires => expires.dup, :domain => 'example.org', :for_domain? => true) + assert_equal 'key', cookie.name + assert_equal 'value', cookie.value + assert_equal expires, cookie.expires + assert_equal 'example.org', cookie.domain + assert_equal true, cookie.for_domain? end def test_domain=