Module: ProgressiveRender::Rails::Controller

Includes:
Helpers
Defined in:
lib/progressive_render/rails/controller.rb

Overview

Rails controller methods, this module is installed into ActionController These methods should not generally be called by user code besides ‘render’

Instance Method Summary collapse

Methods included from Helpers

#progressive_renderer, #progressive_request

Instance Method Details

#progressive_render(template = nil) ⇒ Object



10
11
12
13
14
15
# File 'lib/progressive_render/rails/controller.rb', line 10

def progressive_render(template = nil)
  logger.warn %(DEPRECATED: calling 'progressive_render' directly in the controller
    is deprecated and will be removed in future versions.
    It is no longer necessary to explicitly call the render method.)
  render template
end

#render(options = nil, extra_options = {}, &block) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/progressive_render/rails/controller.rb', line 17

def render(options = nil, extra_options = {}, &block)
  # Fall back to the ActionView renderer if we're on the main page load
  # OR we are being called from inside our own code (in_progressive_render?)
  if progressive_request.main_load? || in_progressive_render?
    super
  else
    in_progressive_render do
      # To preserve legacy behavior pass options through to resolve_path if it's a string
      # ActiveRecord more properly handles the path so use that when possible.
      template = options if options.is_a? String
      progressive_renderer.render_fragment resolve_path(template), progressive_request.fragment_name
    end
  end
end