class SimpleNavigation::Renderer::Base

This is the base class for all renderers.

A renderer is responsible for rendering an ItemContainer and its containing items to HTML.

Attributes

adapter[R]
options[R]

Public Instance Methods

expand_all?() click to toggle source
# File lib/simple_navigation/rendering/renderer/base.rb, line 21
def expand_all?
  !!options[:expand_all]
end
include_sub_navigation?(item) click to toggle source
# File lib/simple_navigation/rendering/renderer/base.rb, line 33
def include_sub_navigation?(item)
  consider_sub_navigation?(item) && expand_sub_navigation?(item)
end
level() click to toggle source
# File lib/simple_navigation/rendering/renderer/base.rb, line 25
def level
  options[:level] || :all
end
render(item_container) click to toggle source

Renders the specified ItemContainer to HTML.

When implementing a renderer, please consider to call include_sub_navigation? to determin whether an item's sub_navigation should be rendered or not.

# File lib/simple_navigation/rendering/renderer/base.rb, line 46
def render(item_container)
  raise 'subclass responsibility'
end
render_sub_navigation_for(item) click to toggle source
# File lib/simple_navigation/rendering/renderer/base.rb, line 37
def render_sub_navigation_for(item)
  item.sub_navigation.render(self.options)
end
skip_if_empty?() click to toggle source
# File lib/simple_navigation/rendering/renderer/base.rb, line 29
def skip_if_empty?
  !!options[:skip_if_empty]
end

Protected Instance Methods

consider_sub_navigation?(item) click to toggle source
# File lib/simple_navigation/rendering/renderer/base.rb, line 52
def consider_sub_navigation?(item)
  return false if item.sub_navigation.nil?
  case level
  when :all
    return true
  when Integer
    return false
  when Range
    return item.sub_navigation.level <= level.max
  end
  false
end
expand_sub_navigation?(item) click to toggle source
# File lib/simple_navigation/rendering/renderer/base.rb, line 65
def expand_sub_navigation?(item)
  expand_all? || item.selected?
end