Sha256: 22941a6ada8661424d9402016b9dd0fa42ce1caefcc243ab1fa93ab32e038dd1

Contents?: true

Size: 730 Bytes

Versions: 28

Compression:

Stored size: 730 Bytes

Contents

module Workarea
  module HttpCaching
    extend ActiveSupport::Concern

    included do
      after_action :set_vary_headers
      helper_method :http_caching?
    end

    def cache_page
      unless current_user.try(:admin?)
        expires_in Workarea.config.cache_expirations.http_cache, public: true if flash.blank?
        request.session_options[:skip] = true
        @http_caching = true
      end
    end

    def http_caching?
      !!@http_caching
    end

    private

    def set_vary_headers
      response.headers['X-Requested-With'] = request.headers['X-Requested-With'] || ''
      response.headers['Vary'] = 'X-Requested-With, X-Workarea-Segments'
      fresh_when(last_modified: Time.current)
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
workarea-core-3.5.6 app/controllers/workarea/http_caching.rb
workarea-core-3.5.5 app/controllers/workarea/http_caching.rb
workarea-core-3.5.4 app/controllers/workarea/http_caching.rb
workarea-core-3.5.3 app/controllers/workarea/http_caching.rb
workarea-core-3.5.2 app/controllers/workarea/http_caching.rb
workarea-core-3.5.1 app/controllers/workarea/http_caching.rb
workarea-core-3.5.0 app/controllers/workarea/http_caching.rb
workarea-core-3.5.0.beta.1 app/controllers/workarea/http_caching.rb