<h2> <%= @klass.class == Module ? "module" : "class" %> <%= @klass.name %> <% if @superclass %> < <%= @superclass.name %> <% end %> <% if @class_ancestors %> <span class="inheritance-chain"> < <%= @class_ancestors. map { |ancestor| link_to(ancestor.name, constant_path(ancestor.name)) }. join(" < ") %> </span> <% end %> </h2> <% unless @methods.files.empty? %> <div> <h4>Defined In Files</h4> <% @methods.files.sort.each do |path| %> <%= link_to_file(path) %><br/> <% end %> </div> <% end %> <% unless @methods.constants.empty? %> <div> <h4>Nested Classes/Modules</h4> <%= content_tag(:pre, constants_table(@klass, @methods.constants)) %> </div> <% end %> <% unless @methods.descendants.empty? %> <div> <h4><%= @klass.instance_of?(Module) ? "Included In" : "Descendants" %></h4> <%= content_tag(:pre, constants_table(@klass, @methods.descendants)) %> </div> <% end %> <div class="opener"> <h4 class="trigger" title="Show Legend"> <span>Ancestor Chain</span> </h4> <div class="content"> Singleton classes are included. The chain is flattened, Classes/Modules which don't contribute any methods are not shown. <div>Legend: <br/> <dl> <dt>[M]</dt> <dd>- included Module;</dd> <dt>[C]</dt> <dd>- inherited Class; </dd> <dt>S[M]</dt> <dd>- Module included in singleton class; </dd> </dl> </div> </div> </div> <div> <% @methods.all.each do |ancestor_with_level_methods| %> <% ancestor, level_methods = ancestor_with_level_methods.keys[0], ancestor_with_level_methods.values[0] %> <h3> <% ancestor_type, ancestor_constant = ancestor.split %> <%= link_to(ancestor, constant_path(ancestor_constant)) %> </h3> <% if methods = level_methods[:class] %> <div class="class-methods"> <% methods.each do |visibility, methods| %> <h5>Class <%= visibility.to_s.capitalize %></h5> <% method_method = ancestor_type == "S[M]" ? :instance : :class %> <%= content_tag(:pre, new_methods_table(ancestor_constant, method_method, methods)) %> <% end %> </div> <% end %> <% if methods = level_methods[:instance] %> <div class="class-methods"> <% methods.each do |visibility, methods| %> <h5>Instance <%= visibility.to_s.capitalize %></h5> <%= content_tag(:pre, new_methods_table(ancestor_constant, :instance, methods)) %> <% end %> </div> <% end %> <% end %> </div>