module ProgressiveRender::Rails::View
Provides methods for application view
Public Instance Methods
progressive_render(deprecated_fragment_name = nil, placeholder: 'progressive_render/placeholder') { || ... }
click to toggle source
Mark a section of content to be loaded after initial view of the page.
Usage¶ ↑
<%= progressive_render do %> <h2>Content!</h2> <% end %>
Specify a custom placeholder¶ ↑
The progressive_render
method puts a simple spinner on the page by default but that can be customized per section by passing a path to a partial via `placeholder`
<%= progressive_render placeholder: 'shared/custom_placehodler' do %> <h2>More Content!</h2> <% end %>
# File lib/progressive_render/rails/view.rb, line 23 def progressive_render(deprecated_fragment_name = nil, placeholder: 'progressive_render/placeholder') if deprecated_fragment_name logger.warn %(DEPRECATED (progressive_render): Literal fragment names are deprecated and will be removed in v1.0. The fragment name (#{deprecated_fragment_name}) will be ignored.") end progressive_render_impl(placeholder: placeholder) do yield end end
Private Instance Methods
fragment_name_iterator()
click to toggle source
# File lib/progressive_render/rails/view.rb, line 59 def fragment_name_iterator @fni ||= FragmentNameIterator.new end
progressive_render_content(fragment_name, placeholder = true) { || ... }
click to toggle source
# File lib/progressive_render/rails/view.rb, line 49 def progressive_render_content(fragment_name, placeholder = true) data = { progressive_render_placeholder: placeholder, progressive_render_path: progressive_request.load_path(fragment_name) }.reject { |_k, v| v.nil? } content_tag(:div, id: "#{fragment_name}_progressive_render", data: data) do yield end end
progressive_render_impl(placeholder: 'progressive_render/placeholder') { || ... }
click to toggle source
# File lib/progressive_render/rails/view.rb, line 37 def progressive_render_impl(placeholder: 'progressive_render/placeholder') fragment_name = fragment_name_iterator.next! progressive_render_content(fragment_name, progressive_request.main_load?) do if progressive_request.main_load? progressive_renderer.render_partial placeholder elsif progressive_request.should_render_fragment?(fragment_name) yield end end end