Skip to content

Commit

Permalink
Experimental dependencies page #87
Browse files Browse the repository at this point in the history
  • Loading branch information
andrew committed Dec 7, 2023
1 parent 2787648 commit 8047484
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 1 deletion.
5 changes: 5 additions & 0 deletions app/controllers/projects_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,9 @@ def create
def project_params
params.require(:project).permit(:url, :name, :description)
end

def dependencies
@projects = Project.reviewed
@dependencies = @projects.map(&:dependency_packages).flatten(1).group_by(&:itself).transform_values(&:count).sort_by{|k,v| v}.reverse.first(50)
end
end
2 changes: 1 addition & 1 deletion app/views/issues/_issue.html.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="card mb-3 repository d-flex" id="issue_<%= issue.id %>">
<div class="card mb-3 issue d-flex" id="issue_<%= issue.id %>">
<div class="card-body pb-1">
<div class="d-flex">

Expand Down
52 changes: 52 additions & 0 deletions app/views/projects/dependencies.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<% @meta_title = "Open Sustain Dependencies" %>

<div class="container-sm">
<h1 class='mb-3'>
Open Sustain Dependencies
</h1>

<p class='lead'>
The most used dependencies in Open Sustain projects.
</p>

<div class="card mb-3 d-flex">
<div class="card-header">
Most used dependencies across all categories
</div>
<ul class="list-group list-group-flush">
<% @dependencies.each do |dependency, count| %>
<li class="list-group-item">
<%= dependency[0] %> : <%= dependency[1] %>
<small class='ps-3 text-muted'>
<i><%= pluralize count, 'dependent project' %></i>
</small>
</li>
<% end %>
</ul>
</div>

<% top_dependencies = @dependencies.map(&:first) %>

<% @projects.group_by(&:category).each do |category, projects|%>
<div class="card mb-3 d-flex">
<div class="card-header">
Most used dependencies in <%= category %>
</div>
<ul class="list-group list-group-flush">
<% dependencies = projects.map(&:dependency_packages).flatten(1).group_by(&:itself).transform_values(&:count).sort_by{|k,v| v}.reverse %>
<% filtered_dependencies = dependencies.reject{|p| top_dependencies.include? p[0]}.first(50) %>
<% filtered_dependencies.each do |dependency, count| %>
<% next if count < 2 %>
<li class="list-group-item">
<%= dependency[0] %> : <%= dependency[1] %>

<small class='ps-3 text-muted'>
<i><%= pluralize count, 'dependent project' %></i>
</small>
</li>
<% end %>
</ul>
</div>
<% end %>

</div>
1 change: 1 addition & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
collection do
post :lookup
get :review
get :dependencies
end
resources :votes, only: [:create]
end
Expand Down

0 comments on commit 8047484

Please sign in to comment.