geminabox/geminabox

View on GitHub
views/index.erb

Summary

Maintainability
Test Coverage
<p>
<small>If you did not need any credentials to get to this page</small>
  <pre><code>gem sources -a <%= url "/" %></code></pre>
<small>If you needed some credentials to get to this page</small>
  <pre><code>gem sources -a <%= url.to_s.gsub('://','://username:password@') %></code></pre>
<% if @allow_upload %>
<small>and then ...</small>
  <pre><code>gem install geminabox<br />gem inabox [gemfile]</code></pre>
<% end %>
</p>

<% if @gems.any? %>
  <% if @allow_upload %><a href="<%= url("/upload") %>">Upload Another Gem</a><% end %>

  <div id="alpha_index"><%= ("a".."z").map{|i| @index_gems.include?(i) ? "<a href='#jump_#{i}'>#{i}</a>" : i }.join(" - ") %></div>

  <ul class="gemlist">

    <% @gems.by_name do |name, versions| %>
      <li <%= %{id="jump_#{name[0..0].downcase}"} if @index_gems.delete(name[0..0].downcase) %> class="gem-version">
        <h2><%= h(name) %> (<%= h(versions.count == 1 ? versions.first.number : "#{versions.oldest.number} - #{versions.newest.number}") %>)</h2>
        <% versions.each.reverse_each.first(5).each do |version| %>
          <p>
            <code>gem install <%= h(version.name) %> <%= "--prerelease" if version.number.to_s.match(/[a-z]/i) %> -v "<%= h(version.number) %>"</code>
            <% unless version.platform =~ /^ruby/i %>
              <small class="platform"><%= h(version.platform) %></small>
            <% end %>
          </p>
          <form class="delete-form" method="post" action="<%= h(url("/gems/#{version.gemfile_name}.gem")) %>">
            <a class="download" href="<%= h(url("/gems/#{version.gemfile_name}.gem")) %>">download</a>
            <% if @allow_delete %>
            <input type="hidden" name="_method" value="DELETE" />
            <button type="submit">delete</button>
            <% end %>
          </form>
        <% end %>

        <% if versions.count > 5 %>
          <a href="<%= h(url("/gems/#{name}")) %>" id="more_link">Older versions...</a>
        <% end %>

        <div class="details">
          <p>
            <% newest_gem = versions.newest %>
            <% if spec = spec_for(name, newest_gem.number, newest_gem.platform) %>
              <%= h(spec.description) %>
              <br/>
              <span class="author">– <%= spec.authors.map do |author|
                "<a href='#{href(spec.homepage)}'>#{h(author)}</a>"
              end.join(', ') %></span>
            <% end %>
          </p>
        </div>

      </li>
    <% end %>
  </ul>
<% end %>

<% if @allow_upload %><a href="<%= url("/upload") %>">Upload Another Gem</a><% end %>

<script type="text/javascript" src="<%= url "/master.js", false %>"></script>