module Apress::Api::Extensions::Jbuilder::JbuilderTemplate

Public Instance Methods

paginating_cache!(collection, key = nil, options = nil) { |self| ... } click to toggle source
# File lib/apress/api/extensions/jbuilder/jbuilder_template.rb, line 7
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 Instance Methods

_pagination_headers(collection) click to toggle source
# File lib/apress/api/extensions/jbuilder/jbuilder_template.rb, line 32
def _pagination_headers(collection)
  ::Apress::Api::ApiController::PaginationHelper.headers(
    collection,
    @context.controller.request.url
  )
end
_set_pagination_headers(headers) click to toggle source
# File lib/apress/api/extensions/jbuilder/jbuilder_template.rb, line 28
def _set_pagination_headers(headers)
  @context.controller.response.headers.merge!(headers)
end