All pastes #800124 Raw Edit

Git

public ruby v1 · immutable
#800124 ·published 2007-11-28 03:40 UTC
rendered paste body
require 'fastercsv'h = Hash.newlinen = 0dategroup = Date.new#.select{ |l| l =~ /[a-zA-Z0-9]+/ }`git log --pretty=format:%aD --shortstat | grep [a-zA-Z0-9]`.each { |line|        if line =~ /\d\d:\d\d:\d\d/ then                date = Date.parse(line)                dategroup = Date.new(date.year, date.month, 1)                if h[dategroup] then                        h[dategroup][:commits] += 1                else                        h[dategroup] = Hash.new                        h[dategroup][:commits] = 1                end        else                line =~ /([\d]+) files changed, ([\d]+) insertions\(\+\), ([\d]+) deletions\(-\)/                h[dategroup][:insert] = (h[dategroup][:insert])? h[dategroup][:insert].to_i + $2.to_i : $2.to_i                h[dategroup][:delete] = (h[dategroup][:delete])? h[dategroup][:delete].to_i + $3.to_i : $3.to_i        end}FasterCSV.open("/tmp/count.csv", "w") do |csv|        h.sort.each { |date, value|                csv << [ "#{date.month}/1/#{date.year}", value[:commits], value[:insert] + value[:delete] ]        }end