提交 e1786ee6 编写于 作者: Y Yehuda Katz

Fixes expires_now and cleans things up a bit

上级 d7499f8e
......@@ -80,7 +80,7 @@ def expires_in(seconds, options = {}) #:doc:
# Sets a HTTP 1.1 Cache-Control header of "no-cache" so no caching should occur by the browser or
# intermediate caches (like caching proxy servers).
def expires_now #:doc:
response.headers["Cache-Control"] = "no-cache"
response.cache_control.replace(:no_cache => true)
end
end
end
......@@ -136,19 +136,16 @@ def etag_matches?(etag)
# If-Modified-Since and If-None-Match conditions. If both headers are
# supplied, both must match, or the request is not considered fresh.
def fresh?(response)
case
when if_modified_since && if_none_match
not_modified?(response.last_modified) && etag_matches?(response.etag)
when if_modified_since
not_modified?(response.last_modified)
when if_none_match
etag_matches?(response.etag)
else
false
end
end
last_modified = if_modified_since
etag = if_none_match
ONLY_ALL = [Mime::ALL].freeze
return false unless last_modified || etag
success = true
success &&= not_modified?(response.last_modified) if last_modified
success &&= etag_matches?(response.etag) if etag
success
end
# Returns the Mime type for the \format used in the request.
#
......
......@@ -270,6 +270,8 @@ def set_conditional_cache_control!
if control.empty?
headers["Cache-Control"] = DEFAULT_CACHE_CONTROL
elsif @cache_control[:no_cache]
headers["Cache-Control"] = "no-cache"
else
extras = control[:extras]
max_age = control[:max_age]
......
......@@ -73,6 +73,11 @@ def conditional_hello_with_expires_in_with_public_with_more_keys_old_syntax
render :action => 'hello_world'
end
def conditional_hello_with_expires_now
expires_now
render :action => 'hello_world'
end
def conditional_hello_with_bangs
render :action => 'hello_world'
end
......@@ -1321,6 +1326,11 @@ def test_expires_in_old_syntax
get :conditional_hello_with_expires_in_with_public_with_more_keys_old_syntax
assert_equal "max-age=60, public, max-stale=18000", @response.headers["Cache-Control"]
end
def test_expires_now
get :conditional_hello_with_expires_now
assert_equal "no-cache", @response.headers["Cache-Control"]
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册