提交 7db29f90 编写于 作者: C Cainã Costa

Refactor ActionDispatch::Http::Cache::Response#cache_control_headers.

上级 19e68e9d
......@@ -86,21 +86,29 @@ def etag=(etag)
CACHE_CONTROL = "Cache-Control".freeze
SPESHUL_KEYS = %w[extras no-cache max-age public must-revalidate]
def cache_control_segments
if cache_control = self[CACHE_CONTROL]
cache_control.delete(' ').split(',')
else
[]
end
end
def cache_control_headers
cache_control = {}
if cc = self[CACHE_CONTROL]
cc.delete(' ').split(',').each do |segment|
directive, argument = segment.split('=', 2)
case directive
when *SPESHUL_KEYS
key = directive.tr('-', '_')
cache_control[key.to_sym] = argument || true
else
cache_control[:extras] ||= []
cache_control[:extras] << segment
end
cache_control_segments.each do |segment|
directive, argument = segment.split('=', 2)
if SPESHUL_KEYS.include? directive
key = directive.tr('-', '_')
cache_control[key.to_sym] = argument || true
else
cache_control[:extras] ||= []
cache_control[:extras] << segment
end
end
cache_control
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册