gitalytics 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/bin/gitalytics +8 -0
  2. data/lib/gitalytics.rb +38 -0
  3. metadata +47 -0
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gitalytics'
4
+
5
+ Dir.chdir($1 || '.')
6
+ g = Gitalytics.new
7
+ res = g.log_to_hash
8
+ g.output_summary_report(res)
@@ -0,0 +1,38 @@
1
+ class Gitalytics
2
+ def log_to_hash
3
+ docs = []
4
+ cmd = "git log --pretty='%cn|%cd|%s'"
5
+ res = `#{cmd}`
6
+
7
+ res.each_line do |line|
8
+ parts = line.split('|')
9
+ docs << {:username => parts[0], :date => Date.parse(parts[1]), :subject => parts[2]}
10
+ end
11
+
12
+ return {
13
+ :users => docs.map{|r| r[:username]}.uniq,
14
+ :dates => docs.map{|r| r[:date]}.uniq,
15
+ :records => docs
16
+ }
17
+ end
18
+
19
+ def output_summary_report(res)
20
+ # Report how many commits over time
21
+ res[:users].each do |user|
22
+ dates_for_user = res[:records].select{|r| r[:username] == user}.map{|r| r[:date]}
23
+ commit_count = dates_for_user.count
24
+ date_count = dates_for_user.uniq.count
25
+ first_date = dates_for_user.min
26
+ last_date = dates_for_user.max
27
+ puts "#{user} has made #{commit_count} commits over the last #{last_date-first_date} days. He did something useful on #{date_count} of those days."
28
+ end
29
+ end
30
+ end
31
+
32
+ # class Commit
33
+ # attr_accesor :author, :message, :date
34
+ # end
35
+
36
+ # class Author
37
+ # attr_accesor :name, :email
38
+ # end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gitalytics
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Gonzalo Robaina
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-04 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Get usefull analytics from your git log
15
+ email: gonzalor@gmail.com
16
+ executables:
17
+ - gitalytics
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/gitalytics.rb
22
+ - bin/gitalytics
23
+ homepage: http://rubygems.org/gems/gitalytics
24
+ licenses: []
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 1.8.25
44
+ signing_key:
45
+ specification_version: 3
46
+ summary: Git Analytics
47
+ test_files: []