class Calculator
Constants
- HALF_LIFE
Public Class Methods
new(time)
click to toggle source
# File lib/git_heat/calculator.rb, line 4 def initialize(time) @time = time end
Public Instance Methods
go(stats)
click to toggle source
# File lib/git_heat/calculator.rb, line 8 def go(stats) heat = {} stats.each do |commit| next if commit[:time] > @time time_delta = @time - commit[:time] unless commit[:affected_files] next end commit[:affected_files].each do |file| impact = (file[:insertions] + file[:deletions]).to_f heat[file[:file]] ||= 0 heat[file[:file]] += impact*(0.5**(time_delta/HALF_LIFE)) end end heat.sort_by {|_key, value| value}.reverse end