class DependencyAnalyzer
Public Class Methods
new()
click to toggle source
# File lib/dependency_analyzer.rb, line 4 def initialize @graph = Courgette::DirectoryAnalyser.new.tap { |da| da.analyse('**/*.rb') }.graph @stats = @graph.nodes.map { |node| { :in => @graph.dependency_count(node), :out => @graph.depender_count(node), :name => node.join("::") } } end
Public Instance Methods
get_in_stats(n)
click to toggle source
# File lib/dependency_analyzer.rb, line 9 def get_in_stats(n) get_stats(maybe_take(@stats.sort { |a, b| b[:in] <=> a[:in] }, n), :in) end
get_out_stats(n)
click to toggle source
# File lib/dependency_analyzer.rb, line 13 def get_out_stats(n) get_stats(maybe_take(@stats.sort { |a, b| b[:out] <=> a[:out] }, n), :out) end
get_stats(stat_array, stat_index)
click to toggle source
# File lib/dependency_analyzer.rb, line 17 def get_stats(stat_array, stat_index) stat_array.map { |x| "#{x[stat_index]} #{x[:name]}" }.join("\n") end
Private Instance Methods
maybe_take(array, n)
click to toggle source
# File lib/dependency_analyzer.rb, line 22 def maybe_take(array, n) if n array.take(n) else array end end