class RocketNavigation::Renderer::Bootstrap

Public Class Methods

new(container, options = {}) click to toggle source
Calls superclass method RocketNavigation::Renderer::Base::new
# File lib/rocket_navigation/renderer/bootstrap.rb, line 8
def initialize(container, options = {})
  super(container, options)
end

Public Instance Methods

consider_sub_navigation?(item) click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 68
def consider_sub_navigation?(item)
  return false unless item.sub_navigation
  true
end
expand_all?() click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 64
def expand_all?
  true
end
item_extra_classes(item) click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 73
def item_extra_classes(item)
  if include_sub_navigation?(item)
    ["dropdown"]
  else
    []
  end
end
list_content(item_container) click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 56
def list_content(item_container)
  ret = ActiveSupport::SafeBuffer.new
  item_container.items.each do |item|
    ret << render_item(item)
  end
  ret
end
list_tag() click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 12
def list_tag
  options[:ordered] ? :ol : :ul
end
render(item_container) click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 16
def render(item_container)
  if skip_if_empty? && item_container.empty?
    ''.html_safe
  else
    if item_container.level > 1
      content = list_content(item_container)
      if options[:superfish]
        content_tag(list_tag, content, {class: "dropdown-menu"})
      else
        content_tag(:div, content, {class: "dropdown-menu"})
      end
    else
      content = list_content(item_container)
      content_tag(list_tag, content, container_html)
    end
  end
end
render_item(item) click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 34
def render_item(item)
  if item.level == 1
    li_content = tag_for(item)
    if include_sub_navigation?(item)
      li_content << render_sub_navigation_for(item)
    end
    content_tag(:li, li_content, item_options(item))
  else
    if include_sub_navigation?(item)
      content = tag_for(item)
      content << render_sub_navigation_for(item)
      if options[:superfish]
        content_tag(:li, content, class: "dropdown")
      else
        content_tag(:div, content, class: "dropdown")
      end
    else
      tag_for(item)
    end
  end
end
tag_for(item) click to toggle source
# File lib/rocket_navigation/renderer/bootstrap.rb, line 93
def tag_for(item)
  if item.sub_navigation
    cl = ""
    if item.level == 1
      cl = "nav-link"
    else
      cl = "dropdown-item"
    end
    opt = {
      class: cl
    }
    opt[:class] += " dropdown-toggle"
    unless options[:superfish]
      opt['data-toggle'] = "dropdown"
    end
    link_to(item.name, item.url, opt)
  else
    super(item)
  end
end