Sha256: 4ab6bf169a87a09901b82c446e564ff900f1269129e9f878a0a2e2e3514aafe3

Contents?: true

Size: 563 Bytes

Versions: 1

Compression:

Stored size: 563 Bytes

Contents

class Calculator
  HALF_LIFE = 60.0*60*24

  def initialize(time)
    @time = time
  end

  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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
git_heat-0.2.0 lib/git_heat/calculator.rb