class SwedbankPay::SidebarRenderer
Renders the Sidebar
Public Class Methods
new(tree)
click to toggle source
# File lib/sidebar_renderer.rb, line 9 def initialize(tree) raise ArgumentError, 'pages cannot be nil' if tree.nil? raise ArgumentError, 'pages must be an SidebarTreeBuilder' unless tree.is_a? SidebarTreeBuilder @tree = tree @html_builder = SidebarHTMLBuilder.new(@tree) end
Public Instance Methods
enrich_jekyll()
click to toggle source
# File lib/sidebar_renderer.rb, line 17 def enrich_jekyll enrich_jekyll_pages(@tree) end
render()
click to toggle source
# File lib/sidebar_renderer.rb, line 21 def render render_pages(@tree) end
Private Instance Methods
render_pages(pages)
click to toggle source
# File lib/sidebar_renderer.rb, line 27 def render_pages(pages) return if pages.empty? pages.each do |page| sidebar_html = render_sidebar(page) name = page.filename || page.name || page.to_s if sidebar_html.nil? SidebarLogger.warn("No HTML rendered for #{name}.") next end if page.sidebar_container.nil? SidebarLogger.warn("No sidebar container found in '#{name}'. #{page.filename}") next end page.sidebar_container.inner_html = sidebar_html page.save render_pages(page.children) end end