提交 fdd619e9 编写于 作者: A Aaron Patterson

CookieJar is enumerable. fixes #2795

上级 90248d29
......@@ -30,6 +30,8 @@
*Rails 3.1.1 (unreleased)*
* CookieJar is now Enumerable. Fixes #2795
* Fixed AssetNotPrecompiled error raised when rake assets:precompile is compiling certain .erb files. [Guillermo Iguaran]
* Manifest is correctly placed in assets path when default assets prefix is changed. [Guillermo Iguaran]
......
......@@ -85,6 +85,7 @@ class Cookies
class CookieOverflow < StandardError; end
class CookieJar #:nodoc:
include Enumerable
# This regular expression is used to split the levels of a domain.
# The top level domain can be any string without a period or
......@@ -124,6 +125,10 @@ def initialize(secret = nil, host = nil, secure = false)
alias :closed? :closed
def close!; @closed = true end
def each(&block)
@cookies.each(&block)
end
# Returns the value of the cookie by +name+, or +nil+ if no such cookie exists.
def [](name)
@cookies[name.to_s]
......
......@@ -148,6 +148,22 @@ def setup
@request.host = "www.nextangle.com"
end
def test_each
request.cookie_jar['foo'] = :bar
list = []
request.cookie_jar.each do |k,v|
list << [k, v]
end
assert_equal [['foo', :bar]], list
end
def test_enumerable
request.cookie_jar['foo'] = :bar
actual = request.cookie_jar.map { |k,v| [k.to_s, v.to_s] }
assert_equal [['foo', 'bar']], actual
end
def test_key_methods
assert !request.cookie_jar.key?(:foo)
assert !request.cookie_jar.has_key?("foo")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册