Class and Module Index

<%- 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 -%><%= index_klass.name %><%- else -%><%= index_klass.name %><%- end end if top = all_classes[nil] solo = top.one? {|klass| klass.display?} traverse = proc do |klasses| -%>
    <%- klasses.each do |index_klass| -%> <%- if children = all_classes[index_klass.full_name] -%>
  • open<% end %>><% link.call(index_klass) %> <%- traverse.call(children) -%>
<%- elsif index_klass.display? -%>
  • <% link.call(index_klass, true) %> <%- end -%> <%- end -%> <%- end -%> <%- traverse.call(top) -%> <%- end -%>