class Slices::Renderer

Public Class Methods

new(options = {}) click to toggle source
# File lib/slices/renderer.rb, line 5
def initialize(options = {})
  options.assert_valid_keys(:controller, :current_page, :slices, :params)

  @controller   = options[:controller] || SlicesController.new
  @current_page = options[:current_page]
  @slices       = options[:slices]
  @params       = options[:params] || {}
end

Public Instance Methods

fragment_exist?(cache_key) click to toggle source
# File lib/slices/renderer.rb, line 34
def fragment_exist?(cache_key)
  @controller.fragment_exist?(cache_key)
end
render_container(container, slices = @slices) click to toggle source
# File lib/slices/renderer.rb, line 26
def render_container(container, slices = @slices)
  render_slices slices.where(container: container)
end
render_slices(slices = @slices) click to toggle source
# File lib/slices/renderer.rb, line 14
def render_slices(slices = @slices)
  [].tap do |rendered|
    slices.each do |slice|
      benchmark "Prepared #{slice.reference}" do
        slice.setup(setup_options)
        slice.prepare(@params)
      end
      rendered << slice.render
    end
  end.join("\n").html_safe
end
render_to_string(template, options) click to toggle source
# File lib/slices/renderer.rb, line 30
def render_to_string(template, options)
  @controller.render_to_string(template, { layout: nil }.merge(options))
end

Private Instance Methods

logger() click to toggle source
# File lib/slices/renderer.rb, line 47
def logger
  Rails.logger
end
setup_options() click to toggle source
# File lib/slices/renderer.rb, line 40
def setup_options
  {
    renderer:     self,
    current_page: @current_page
  }
end