method
merge_and_normalize_cache_control!
v7.0.0 -
Show latest stable
-
0 notes -
Class: ActionDispatch::Http::Cache::Response
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
merge_and_normalize_cache_control!(cache_control)
private
Hide source
# File actionpack/lib/action_dispatch/http/cache.rb, line 185 def merge_and_normalize_cache_control!(cache_control) control = cache_control_headers return if control.empty? && cache_control.empty? # Let middleware handle default behavior if cache_control.any? # Any caching directive coming from a controller overrides # no-cache/no-store in the default Cache-Control header. control.delete(:no_cache) control.delete(:no_store) if extras = control.delete(:extras) cache_control[:extras] ||= [] cache_control[:extras] += extras cache_control[:extras].uniq! end control.merge! cache_control end options = [] if control[:no_store] options << PRIVATE if control[:private] options << NO_STORE elsif control[:no_cache] options << PUBLIC if control[:public] options << NO_CACHE options.concat(control[:extras]) if control[:extras] else extras = control[:extras] max_age = control[:max_age] stale_while_revalidate = control[:stale_while_revalidate] stale_if_error = control[:stale_if_error] options << "max-age=#{max_age.to_i}" if max_age options << (control[:public] ? PUBLIC : PRIVATE) options << MUST_REVALIDATE if control[:must_revalidate] options << "stale-while-revalidate=#{stale_while_revalidate.to_i}" if stale_while_revalidate options << "stale-if-error=#{stale_if_error.to_i}" if stale_if_error options.concat(extras) if extras end self._cache_control = options.join(", ") end