class Reconn::Visualizer
Public Class Methods
make_bar_chart(title, data, additional_line_value = nil)
click to toggle source
# File lib/reconn/visualizer.rb, line 20 def self.make_bar_chart(title, data, additional_line_value = nil) chart = Gruff::Bar.new chart.minimum_value = 0 chart.maximum_value = data.first[:value] chart.additional_line_values = [additional_line_value] unless additional_line_value.nil? chart.title = title.to_s data.each do |item| chart.data(item[:label], item[:value]) end chart.to_blob end
make_dependency_diagram(classes)
click to toggle source
# File lib/reconn/visualizer.rb, line 33 def self.make_dependency_diagram(classes) diagram = GraphViz.new(:G, :type => :digraph) nodes = classes.map { |c| diagram.add_nodes(c.name) } external_nodes = classes.map {|c| c.external_deps}.inject(:+).uniq.map {|n| diagram.add_nodes(n)} classes.each do |klass| classes.each do |other_klass| if !klass.dependencies.index {|d| d == other_klass.name }.nil? || klass.dependencies.find_all {|d| other_klass.name =~ /^.*{0,}::#{d}$/}.size == 1 node, other_node = [klass, other_klass].map {|k| nodes.find {|n| n[:label].to_s.gsub('"', '') == k.name}} diagram.add_edges(node, other_node) end end external_nodes.each {|n| n.set {|_n| _n.color = "blue"}} external_nodes.each do |ext_node| if klass.external_deps.include?(ext_node[:label].to_s.gsub('"', '')) node = nodes.find {|n| n[:label].to_s.gsub('"', '') == klass.name} diagram.add_edges(node, ext_node) end end end diagram.output(:png => String) end
make_pie_chart(title, data, items_number)
click to toggle source
# File lib/reconn/visualizer.rb, line 6 def self.make_pie_chart(title, data, items_number) chart = Gruff::Pie.new chart.title = title.to_s data = Array.new(data) data.first(items_number).each do |item| chart.data(item[:label], item[:value]) data.delete(item) end chart.data("other", data.map {|itm| itm[:value]}.inject(:+)) chart.to_blob end