summaryrefslogtreecommitdiff
path: root/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml
blob: 787bbe42c2c1c1746407e2f74036ccdf813f32d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<div id="classindex-section" class="nav-section">
  <h3>Class and Module Index</h3>

  <%-
  all_classes = @classes.group_by do |klass|
    klass.full_name[/\A[^:]++(?:::[^:]++(?=::))*+(?=::[^:]*+\z)/]
  end.delete_if do |_, klasses|
    !klasses.any?(&:display?)
  end
  link = proc do |index_klass, display = index_klass.display?|
    if display
      -%><code><a href="<%= rel_prefix %>/<%= index_klass.path %>"><%= index_klass.name %></a></code><%-
    else
      -%><code><%= index_klass.name %></code><%-
    end
  end
  -%>
  <%- traverse = proc do |klasses| -%>
  <ul class="link-list">
    <%- klasses.each do |index_klass| -%>
      <%- if children = all_classes[index_klass.full_name] -%>
  <li><details><summary><% link.call(index_klass) %></summary>
        <%- traverse.call(children) -%>
  </ul></details>
      <%- elsif index_klass.display? -%>
  <li><% link.call(index_klass, true) %>
      <%- end -%>
    <%- end -%>
  <%- end -%>
  <%- traverse.call(all_classes[nil]) -%>
</div>