<body id="top" class="<%= klass.type %>">
<nav id="metadata">
  <%= render '_sidebar_navigation.rhtml' %>

  <%= render '_sidebar_search.rhtml' %>

  <div id="file-metadata">
    <%= render '_sidebar_in_files.rhtml' %>
    <%= render '_sidebar_VCS_info.rhtml' %>
  </div>

  <div id="class-metadata">
    <%= render '_sidebar_sections.rhtml' %>
    <%= render '_sidebar_parent.rhtml' %>
    <%= render '_sidebar_includes.rhtml' %>
    <%= render '_sidebar_methods.rhtml' %>
  </div>

  <div id="project-metadata">
    <%= render '_sidebar_pages.rhtml' %>
    <%= render '_sidebar_classes.rhtml' %>
  </div>
</nav>

<div id="documentation">
  <h1 class="<%= klass.type %>"><%= klass.type %> <%= klass.full_name %></h1>

  <div id="description" class="description">
    <%= klass.description %>
  </div><!-- description -->

  <% klass.each_section do |section, constants, attributes| %>
  <% constants = constants.select { |const| const.display? } %>
  <% attributes = attributes.select { |attr| attr.display? } %>
  <section id="<%= section.aref %>" class="documentation-section">
    <% if section.title then %>
    <div class="documentation-section-title">
      <h2 class="section-header">
        <%= section.title %>
      </h2>
      <span class="section-click-top">
        <a href="#top">&uarr; top</a>
      </span>
    </div>
    <% end %>

    <% if section.comment then %>
    <div class="description">
      <%= section.description %>
    </div>
    <% end %>

    <% unless constants.empty? then %>
    <!-- Constants -->
    <section id="constants-list" class="section">
      <h3 class="section-header">Constants</h3>
      <dl>
      <% constants.each do |const| %>
        <dt id="<%= const.name %>"><%= const.name %>
        <% if const.comment then %>
        <dd class="description"><%= const.description.strip %>
        <% else %>
        <dd class="description missing-docs">(Not documented)
        <% end %>
      <% end %>
      </dl>
    </section>
    <% end %>

    <% unless attributes.empty? then %>
    <!-- Attributes -->
    <section id="attribute-method-details" class="method-section section">
      <h3 class="section-header">Attributes</h3>

      <% attributes.each do |attrib| %>
      <div id="<%= attrib.aref %>" class="method-detail">
        <div class="method-heading attribute-method-heading">
          <span class="method-name"><%= h attrib.name %></span><span
            class="attribute-access-type">[<%= attrib.rw %>]</span>
        </div>

        <div class="method-description">
        <% if attrib.comment then %>
        <%= attrib.description.strip %>
        <% else %>
        <p class="missing-docs">(Not documented)
        <% end %>
        </div>
      </div>
      <% end %>
    </section><!-- attribute-method-details -->
    <% end %>

    <!-- Methods -->
    <% klass.methods_by_type(section).each do |type, visibilities|
       next if visibilities.empty?
       visibilities.each do |visibility, methods|
         next if methods.empty? %>
     <section id="<%= visibility %>-<%= type %>-<%= section.aref %>-method-details" class="method-section section">
      <h3 class="section-header"><%= visibility.to_s.capitalize %> <%= type.capitalize %> Methods</h3>

    <% methods.each do |method| %>
      <div id="<%= method.aref %>" class="method-detail <%= method.is_alias_for ? "method-alias" : '' %>">
        <% if method.call_seq then %>
        <%   method.call_seq.strip.split("\n").each_with_index do |call_seq, i| %>
        <div class="method-heading">
          <span class="method-callseq">
            <%= h(call_seq.strip.gsub( /^\w+\./m, '')).gsub(/[-=]&gt;/, '&rarr;') %>
          </span>
          <% if i == 0 then %>
          <span class="method-click-advice">click to toggle source</span>
          <% end %>
        </div>
        <%   end %>
        <% else %>
        <div class="method-heading">
          <span class="method-name"><%= h method.name %></span><span
            class="method-args"><%= method.param_seq %></span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        <% end %>

        <div class="method-description">
          <% if method.comment then %>
          <%= method.description.strip %>
          <% else %>
          <p class="missing-docs">(Not documented)
          <% end %>

          <% if method.token_stream then %>
          <div class="method-source-code" id="<%= method.html_name %>-source">
            <pre><%= method.markup_code %></pre>
          </div><!-- <%= method.html_name %>-source -->
          <% end %>
        </div>

        <% unless method.aliases.empty? then %>
        <div class="aliases">
          Also aliased as: <%= method.aliases.map do |aka|
            if aka.parent then # HACK lib/rexml/encodings
              %{<a href="#{klass.aref_to aka.path}">#{h aka.name}</a>}
            else
              h aka.name
            end
          end.join ", " %>
        </div>
        <% end %>

        <% if method.is_alias_for then %>
        <div class="aliases">
          Alias for: <a href="<%= klass.aref_to method.is_alias_for.path %>"><%= h method.is_alias_for.name %></a>
        </div>
        <% end %>
      </div><!-- <%= method.html_name %>-method -->

    <% end %>
    </section><!-- <%= visibility %>-<%= type %>-method-details -->
  <% end
     end %>
  </section><!-- <%= section.aref %> -->
<% end %>

</div><!-- documentation -->
