method

set_conditional_cache_control!

Importance_0
v4.2.7 - Show latest stable - 0 notes - Class: ActionDispatch::Http::Cache::Response
set_conditional_cache_control!() private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File actionpack/lib/action_dispatch/http/cache.rb, line 141
        def set_conditional_cache_control!
          control = {}
          cc_headers = cache_control_headers
          if extras = cc_headers.delete(:extras)
            @cache_control[:extras] ||= []
            @cache_control[:extras] += extras
            @cache_control[:extras].uniq!
          end

          control.merge! cc_headers
          control.merge! @cache_control

          if control.empty?
            headers[CACHE_CONTROL] = DEFAULT_CACHE_CONTROL
          elsif control[:no_cache]
            headers[CACHE_CONTROL] = NO_CACHE
            if control[:extras]
              headers[CACHE_CONTROL] += ", #{control[:extras].join(', ')}"
            end
          else
            extras  = control[:extras]
            max_age = control[:max_age]

            options = []
            options << "max-age=#{max_age.to_i}" if max_age
            options << (control[:public] ? PUBLIC : PRIVATE)
            options << MUST_REVALIDATE if control[:must_revalidate]
            options.concat(extras) if extras

            headers[CACHE_CONTROL] = options.join(", ")
          end
        end
Register or log in to add new notes.