Sha256: 1c84c8218875572c5b2716b4b273d01a70fdade59d1a224efb04b2b417bf85e8

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

module Apress
  module Api
    module Extensions
      module Jbuilder
        module JbuilderTemplate
          def paginating_cache!(collection, key = nil, options = nil)
            if @context.controller.perform_caching
              result = Rails.cache.fetch(_cache_key(key || collection, options), options) do
                {
                  headers: _pagination_headers(collection),
                  content: _scope { yield self }
                }
              end

              _set_pagination_headers(result[:headers])

              merge! result[:content]
            else
              _set_pagination_headers(_pagination_headers(collection))

              yield
            end
          end

          private

          def _set_pagination_headers(headers)
            @context.controller.response.headers.merge!(headers)
          end

          def _pagination_headers(collection)
            ::Apress::Api::ApiController::PaginationHelper.headers(
              collection,
              @context.controller.request.url
            )
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
apress-api-1.24.0 lib/apress/api/extensions/jbuilder/jbuilder_template.rb
apress-api-1.23.0 lib/apress/api/extensions/jbuilder/jbuilder_template.rb
apress-api-1.22.1 lib/apress/api/extensions/jbuilder/jbuilder_template.rb
apress-api-1.22.0 lib/apress/api/extensions/jbuilder/jbuilder_template.rb