class Fume::RenderCache::RenderCacheFilter

Public Instance Methods

around(controller) { || ... } click to toggle source
# File lib/fume/render_cache.rb, line 71
def around(controller)
  controller.render_cache_params ||= {
    options: {},
    cache: nil
  }

  controller.render_cache_params[:cache] = Rails.cache if controller.class.perform_caching
  
  yield
  
  params = controller.render_cache_params
  if params[:key]
    page = RenderCachePage.new(controller.response.charset,
                               controller.response.content_type,
                               controller.response_body.is_a?(Array) ? controller.response_body.join : controller.response_body)
    params[:cache].write(params[:key], page.dump, params[:options])
  end
end