Method: NavNode::NavHelper#render_nav

Defined in:
lib/nav_node/nav_helper.rb

#render_nav(options = {}) {|nav_node| ... } ⇒ Object

Yields:

  • (nav_node)


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/nav_node/nav_helper.rb', line 5

def render_nav(options = {})
  nav_node = NavNode::Node.new

  yield(nav_node) if block_given?

  if options[:tag]
    if ["ul", "dl", "ol"].include?(options[:tag])
      nav_tag = options[:tag]
    end
  end

  nav_tag ||= "ul"
  full_path = if respond_to?(:request)
                request.fullpath
              else
                "/"
              end

  node_html = nav_node.parse_list(full_path, "").join("")
  list_html = "<#{nav_tag} class='#{options[:class]}'>#{node_html}</#{nav_tag}>"
  list_html.html_safe
end