Sha256: 630c0227434e88483fa95b1201bf4c3209967e3512d631f03303c6a9d424e177

Contents?: true

Size: 1.04 KB

Versions: 22

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module PagesCore
  module StaticCacheController
    extend ActiveSupport::Concern

    module ClassMethods
      def static_cache(*actions, permanent: false)
        return unless perform_caching

        if permanent
          after_action :cache_static_page_permanently, only: actions
        else
          after_action :cache_static_page, only: actions
        end
      end

      alias caches_page static_cache
    end

    def disable_static_cache!
      @static_cache_disabled = true
    end

    private

    def cache_static_page
      return unless static_cache_allowed?

      PagesCore::StaticCache.handler.cache_page(
        self, request, response
      )
    end

    def cache_static_page_permanently
      return unless static_cache_allowed?

      PagesCore::StaticCache.handler.cache_page_permanently(
        self, request, response
      )
    end

    def static_cache_allowed?
      (request.get? || request.head?) && response.status == 200 &&
        perform_caching && !@static_cache_disabled
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
pages_core-3.12.7 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.12.6 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.12.5 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.12.4 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.12.3 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.12.2 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.12.1 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.12.0 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.11.3 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.11.2 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.11.1 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.11.0 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.10.2 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.10.1 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.9.2 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.9.1 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.9.0 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.8.3 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.8.2 app/controllers/concerns/pages_core/static_cache_controller.rb
pages_core-3.8.1 app/controllers/concerns/pages_core/static_cache_controller.rb