4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/chuggle/scatter_plot_generator.rb', line 4
def self.from(metrics_hash)
data_in_json_format = metrics_hash.map do |filename, metrics|
{:filename => filename, :x => metrics[:churn], :y => metrics[:complexity]}
end.reject do |metrics|
metrics[:x].nil? || metrics[:y].nil?
end.to_json
series = ["var chuggleGraphData = #{data_in_json_format};"]
grouped_by_directory = metrics_hash.group_by do |filename, _|
directories = File.dirname(filename).split("/")
directories[0..1].join("/")
end
directory_series = {}
grouped_by_directory.each_pair do |directory, metrics_hash|
data_in_json_format = metrics_hash.map do |filename, metrics|
{:filename => filename, :x => metrics[:churn], :y => metrics[:complexity]}
end.reject do |metrics|
metrics[:x].nil? || metrics[:y].nil?
end
directory_series[directory] = data_in_json_format
end
series << "var directorySeries = #{directory_series.to_json};"
series.join("\n")
end
|