graf 0.0.2 → 0.0.3

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/lib/graf/source.rb +18 -25
  2. data/lib/graf/version.rb +1 -1
  3. metadata +8 -2
@@ -1,39 +1,32 @@
1
1
  #encoding: utf-8
2
2
 
3
3
  module Graf
4
-
5
4
  class Source
6
-
7
5
  class << self
8
-
9
- def count_of_commits(log, author)
10
- log.grep(author).size
11
- end
12
-
13
6
  TICK = '▇'
14
-
15
- def authors()
16
- freq = Hash.new()
17
- log = `git log --pretty=format:'%an'`.split("\n")
18
- log.uniq.each do |author|
19
- freq[author] = count_of_commits(log, author)
7
+ def authors
8
+ log = `git shortlog -se`
9
+ log = log.scan(/(\d+)\t(.*)\<(.*)\>/)
10
+ frequency = {}
11
+ log.each do |row|
12
+ count, username, email = *row
13
+ username.strip!
14
+ email.strip!
15
+ frequency[email] ||= {}
16
+ frequency[email][:count] ||= 0
17
+ frequency[email][:count] += count.to_i
18
+ frequency[email][:username] = username
20
19
  end
21
-
22
- max = freq.max_by { |k,v| v }[1]
23
-
24
- authors = freq.keys.sort_by do |author|
25
- freq[author]
20
+ max = frequency.map {|v|v.last[:count]}.max
21
+ authors = frequency.keys.sort_by do |author|
22
+ frequency[author][:count]
26
23
  end.reverse.map do |author|
27
- TICK * (freq[author] * 70 / max) +
28
- " #{author} (#{freq[author]} commit" +
29
- (freq[author] == 1 ? ")" : "s)")
24
+ TICK * (frequency[author][:count] * 70 / max) +
25
+ " #{frequency[author][:username]} (#{frequency[author][:count]} commit" +
26
+ (frequency[author][:count] == 1 ? ")" : "s)")
30
27
  end
31
-
32
28
  return authors
33
29
  end
34
-
35
30
  end
36
-
37
31
  end
38
-
39
32
  end
@@ -1,3 +1,3 @@
1
1
  module Graf
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-14 00:00:00.000000000 Z
12
+ date: 2013-07-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -76,12 +76,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  - - '>='
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
+ segments:
80
+ - 0
81
+ hash: 917165269381293850
79
82
  required_rubygems_version: !ruby/object:Gem::Requirement
80
83
  none: false
81
84
  requirements:
82
85
  - - '>='
83
86
  - !ruby/object:Gem::Version
84
87
  version: '0'
88
+ segments:
89
+ - 0
90
+ hash: 917165269381293850
85
91
  requirements: []
86
92
  rubyforge_project:
87
93
  rubygems_version: 1.8.25