Sha256: 7f8d4ef3cc39c6bd247481495b77421b3b244208c9c771d5625d60b535b70098

Contents?: true

Size: 975 Bytes

Versions: 110

Compression:

Stored size: 975 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
        # TODO: This cache is caching even in development. That shouldn't be happening.
        @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

110 entries across 110 versions & 1 rubygems

Version Path
trusty-cms-3.8.3 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.8.2 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.8.1 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.8.0 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.7.1 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.7.0 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.6.2 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.6.1 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.6.0 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.5.5 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.5.4 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.5.3 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.5.2 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.5.1 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.5.0 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.4.0 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.3.7 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.3.6 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.3.5 app/models/trusty_cms/page_response_cache_director.rb
trusty-cms-3.3.3 app/models/trusty_cms/page_response_cache_director.rb