Sha256: 31b3b711800110452e9cff384f0a97d928c91f4803bc9b3ec3a962649455fb55

Contents?: true

Size: 880 Bytes

Versions: 92

Compression:

Stored size: 880 Bytes

Contents

module TrustyCms
  class PageResponseCacheDirector
    def initialize(page, listener)
      @page = page
      @listener = listener
    end

    def set_cache_control
      cacheable? ? cacheable_response : non_cacheable_response
    end

    class << self
      def cache_timeout
        @cache_timeout ||= 5.minutes
      end

      def cache_timeout=(val)
        @cache_timeout = val
      end
    end

    private

    def non_cacheable_response
      @listener.set_expiry nil, :private => true, 'no-cache' => true
      @listener.set_etag('')
    end

    def cacheable_response
      timeout = self.class.cache_timeout
      if @page.respond_to?(:cache_timeout)
        timeout = @page.cache_timeout
      end

      @listener.set_expiry timeout, public: true, private: false
    end

    def cacheable?
      @listener.cacheable_request? && @page.cache?
    end
  end
end

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
trusty-cms-7.0.22 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.21 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.20 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.19 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.18 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.17 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.16 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.14 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.13 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.12 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.15 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.9.1 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.11 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.10 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.9 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.8 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.7 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.6 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.5 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-7.0.4 app/models/trusty_cms/page_response_cache_director.rb