Class: SimpleNavigation::Renderer::List
- Defined in:
- lib/simple_navigation/renderer/list.rb
Overview
Renders an ItemContainer as a <ul> element and its containing items as <li> elements. It adds the ‘selected’ class to li element AND the link inside the li element that is currently active. If the sub navigation should be included, it renders another <ul> containing the sub navigation inside the active <li> element.
By default, the renderer sets the item’s key as dom_id for the rendered <li> element. The id can be explicitely specified by setting the id in the html-options of the ‘item’ method in the config/navigation.rb file.
Instance Attribute Summary
Attributes inherited from Base
#controller, #current_navigation, #current_sub_navigation
Instance Method Summary collapse
Methods inherited from Base
controller_method, #initialize
Constructor Details
This class inherits a constructor from SimpleNavigation::Renderer::Base
Instance Method Details
#render(item_container, include_sub_navigation = false) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/simple_navigation/renderer/list.rb', line 12 def render(item_container, =false) list_content = item_container.items.inject([]) do |list, item| = item.() li_content = link_to(item.name, item.url, :class => item.selected_class(), :method => item.method) if item. if .config.render_all_levels li_content << (item..render()) else li_content << (item..render()) if && item.selected?() end end list << content_tag(:li, li_content, ) end content_tag(:ul, list_content, {:id => item_container.dom_id, :class => item_container.dom_class}) end |