class Hellgrid::Matrix
Attributes
projects[R]
Public Class Methods
new()
click to toggle source
# File lib/hellgrid/matrix.rb, line 5 def initialize @projects = [] end
Public Instance Methods
add_project(project)
click to toggle source
# File lib/hellgrid/matrix.rb, line 9 def add_project(project) @projects << project end
gem_names()
click to toggle source
# File lib/hellgrid/matrix.rb, line 21 def gem_names @projects.map { |p| p.dependency_matrix.keys }.flatten.uniq end
gems_by_usage()
click to toggle source
# File lib/hellgrid/matrix.rb, line 35 def gems_by_usage gem_usage = Hash.new(0) projects.each do |project| project.dependency_matrix.each do |gem, _| gem_usage[gem] += 1 end end gem_usage.sort_by {|key, value| [-value, key] }.to_h end
project_names()
click to toggle source
# File lib/hellgrid/matrix.rb, line 17 def project_names projects_sorted_by_name.map(&:name) end
projects_sorted_by_name()
click to toggle source
# File lib/hellgrid/matrix.rb, line 13 def projects_sorted_by_name @projects.sort { |a,b| a.name <=> b.name } end
sorted_by_most_used()
click to toggle source
# File lib/hellgrid/matrix.rb, line 25 def sorted_by_most_used header = [nil] + project_names body = gems_by_usage.keys.map do |gem| [gem] + projects_sorted_by_name.map { |project| project.dependency_matrix[gem] } end [header] + body end