Allow symbols to be used as keys for setting cookies
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@21 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
d0c90331f1
commit
defda16b83
|
@ -4,14 +4,14 @@ module ActionController #:nodoc:
|
|||
# itself back -- just the value it holds). Examples for writting:
|
||||
#
|
||||
# cookies["user_name"] = "david" # => Will set a simple session cookie
|
||||
# cookies["login"] = { "value" => "XJ-122", "expires" => Time.now + 360} # => Will set a cookie that expires in 1 hour
|
||||
# cookies["login"] = { :value => "XJ-122", :expires => Time.now + 360} # => Will set a cookie that expires in 1 hour
|
||||
#
|
||||
# Examples for reading:
|
||||
#
|
||||
# cookies["user_name"] # => "david"
|
||||
# cookies.size # => 2
|
||||
#
|
||||
# All the options for setting cookies are:
|
||||
# All the option symbols for setting cookies are:
|
||||
#
|
||||
# value:: the cookie's value or list of values (as an array).
|
||||
# path:: the path for which this cookie applies. Defaults to the root of the application.
|
||||
|
@ -41,6 +41,7 @@ module ActionController #:nodoc:
|
|||
|
||||
def []=(name, options)
|
||||
if options.is_a?(Hash)
|
||||
options.each { |key, value| options[key.to_s] = value }
|
||||
options["name"] = name
|
||||
else
|
||||
options = [ name, options ]
|
||||
|
|
|
@ -17,6 +17,11 @@ class CookieTest < Test::Unit::TestCase
|
|||
render_text "hello world"
|
||||
end
|
||||
|
||||
def authenticate_for_fourten_days_with_symbols
|
||||
cookies["user_name"] = { :value => "david", :expires => Time.local(2005, 10, 10) }
|
||||
render_text "hello world"
|
||||
end
|
||||
|
||||
def set_multiple_cookies
|
||||
cookies["user_name"] = { "value" => "david", "expires" => Time.local(2005, 10, 10) }
|
||||
cookies["login"] = "XJ-122"
|
||||
|
@ -52,6 +57,11 @@ class CookieTest < Test::Unit::TestCase
|
|||
assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david", "expires" => Time.local(2005, 10, 10)) ], process_request.headers["cookie"]
|
||||
end
|
||||
|
||||
def test_setting_cookie_for_fourteen_days_with_symbols
|
||||
@request.action = "authenticate_for_fourten_days"
|
||||
assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david", "expires" => Time.local(2005, 10, 10)) ], process_request.headers["cookie"]
|
||||
end
|
||||
|
||||
def test_multiple_cookies
|
||||
@request.action = "set_multiple_cookies"
|
||||
assert_equal 2, process_request.headers["cookie"].size
|
||||
|
|
Loading…
Reference in New Issue