Module: AsyncRender::MemoizedHelper

Includes:
Utils
Defined in:
lib/async_render/memoized_helper.rb

Instance Method Summary collapse

Methods included from Utils

#build_memoized_render_key, #generate_token, #normalize_locals

Instance Method Details

#memoized_render(partial, locals = nil, formats: [ :html ], **locals_kw) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/async_render/memoized_helper.rb', line 5

def memoized_render(partial, locals = nil, formats: [ :html ], **locals_kw)
  return render(partial, locals) unless AsyncRender.enabled

  effective_locals = normalize_locals(locals, locals_kw)
  key = build_memoized_render_key(partial, effective_locals)
  AsyncRender.memoized_cache.compute_if_absent(key) do
    Rails.logger.info "[AsyncRender] Memoizing: #{partial}" if Rails.env.local?
    ApplicationController.renderer.render(partial: partial, locals: effective_locals, formats: formats)
  end
end