git_statistics 0.4.0 → 0.4.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.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # CHANGELOG
2
2
 
3
+ * [0.4.1 - October 9, 2012](https://github.com/kevinjalbert/git_statistics/compare/v0.4.0...v0.4.1)
3
4
  * [0.4.0 - September 25, 2012](https://github.com/kevinjalbert/git_statistics/compare/v0.3.0...v0.4.0)
4
5
  * [0.3.0 - September 12, 2012](https://github.com/kevinjalbert/git_statistics/compare/v0.2.0...v0.3.0)
5
6
  * [0.2.0 - September 6, 2012](https://github.com/kevinjalbert/git_statistics/compare/v0.1.2...v0.2.0)
@@ -40,8 +40,8 @@ module GitStatistics
40
40
  # Extract the buffer (commit) when we match ','x5 in the log format (delimeter)
41
41
  if line.split(',').size == 5
42
42
 
43
- # Sometimes 'git log' doesn't populate the buffer, try fallback option if so
44
- buffer = fall_back_collect_commit(line.split(',').first) if buffer.size == 1
43
+ # Sometimes 'git log' doesn't populate the buffer (i.e., merges), try fallback option if so
44
+ buffer = fall_back_collect_commit(buffer[0].split(',').first) if buffer.size == 1
45
45
 
46
46
  extract_commit(buffer) if not buffer.empty?
47
47
  buffer = []
@@ -1,3 +1,3 @@
1
1
  module GitStatistics
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -8,6 +8,83 @@ describe Collector do
8
8
  let(:pretty) {false}
9
9
  let(:collector) {Collector.new(verbose, limit, fresh, pretty)}
10
10
 
11
+ # Create buffer which is an array of cleaned lines
12
+ let(:buffer) {
13
+ buffer = []
14
+ fixture(fixture_file).readlines.each do |line|
15
+ buffer << Utilities.clean_string(line)
16
+ end
17
+ buffer
18
+ }
19
+
20
+ describe "#collect" do
21
+ let(:branch) {""}
22
+ let(:email) {false}
23
+ let(:merge) {true}
24
+ let(:time_since) {"--since \"Tue Sep 25 14:15:44 2012 -0400\""}
25
+ let(:time_until) {"--until \"Tue Sep 25 14:45:05 2012 -0400\""}
26
+ let(:author) {"Kevin Jalbert"}
27
+
28
+ let(:setup) {
29
+ collector.collect(branch, time_since, time_until)
30
+ collector.commits.calculate_statistics(email, merge)
31
+ @subject = collector.commits.stats[author]
32
+ }
33
+
34
+ context "with no merge commits" do
35
+ let(:merge) {false}
36
+ let(:time_since) {"--since \"Tue Sep 10 14:15:44 2012 -0400\""}
37
+ let(:time_until) {"--until \"Tue Sep 11 14:45:05 2012 -0400\""}
38
+
39
+ before(:all) {setup}
40
+
41
+ it{@subject[:additions].should == 276}
42
+ it{@subject[:deletions].should == 99}
43
+ it{@subject[:commits].should == 4}
44
+ it{@subject[:merges].should == 0}
45
+
46
+ it{@subject[:languages][:Ruby][:additions].should == 270}
47
+ it{@subject[:languages][:Ruby][:deletions].should == 99}
48
+ it{@subject[:languages][:Ruby][:create].should == 2}
49
+ it{@subject[:languages][:Unknown][:additions].should == 6}
50
+ it{@subject[:languages][:Unknown][:deletions].should == 0}
51
+ it{@subject[:languages][:Unknown][:create].should == 1}
52
+ end
53
+
54
+ context "with merge commits and merge option" do
55
+ before(:all) {setup}
56
+
57
+ it{@subject[:additions].should == 667}
58
+ it{@subject[:deletions].should == 483}
59
+ it{@subject[:commits].should == 3}
60
+ it{@subject[:merges].should == 1}
61
+
62
+ it{@subject[:languages][:Markdown][:additions].should == 1}
63
+ it{@subject[:languages][:Markdown][:deletions].should == 0}
64
+ it{@subject[:languages][:Ruby][:additions].should == 654}
65
+ it{@subject[:languages][:Ruby][:deletions].should == 483}
66
+ it{@subject[:languages][:Unknown][:additions].should == 12}
67
+ it{@subject[:languages][:Unknown][:deletions].should == 0}
68
+ end
69
+
70
+ context "with merge commits and no merge option" do
71
+ let(:merge) {false}
72
+ before(:all) {setup}
73
+
74
+ it{@subject[:additions].should == 8}
75
+ it{@subject[:deletions].should == 1}
76
+ it{@subject[:commits].should == 2}
77
+ it{@subject[:merges].should == 0}
78
+
79
+ it{@subject[:languages][:Markdown][:additions].should == 1}
80
+ it{@subject[:languages][:Markdown][:deletions].should == 0}
81
+ it{@subject[:languages][:Ruby][:additions].should == 1}
82
+ it{@subject[:languages][:Ruby][:deletions].should == 1}
83
+ it{@subject[:languages][:Unknown][:additions].should == 6}
84
+ it{@subject[:languages][:Unknown][:deletions].should == 0}
85
+ end
86
+ end
87
+
11
88
  describe "#collect_branches" do
12
89
  let(:branches) {collector.collect_branches(fixture(fixture_file))}
13
90
 
@@ -122,6 +199,7 @@ describe Collector do
122
199
 
123
200
  describe "#identify_changed_files" do
124
201
  let(:files) {collector.identify_changed_files(buffer)}
202
+ let(:fixture_file) {"commit_buffer_changes.txt"}
125
203
 
126
204
  context "with no changes" do
127
205
  let(:buffer) {[]}
@@ -130,15 +208,6 @@ describe Collector do
130
208
  end
131
209
 
132
210
  context "with all types (create,delete,rename,copy) of files" do
133
- # Create buffer which is an array of cleaned lines
134
- let(:buffer) {
135
- buffer = []
136
- fixture("commit_buffer_changes.txt").readlines.each do |line|
137
- buffer << Utilities.clean_string(line)
138
- end
139
- buffer
140
- }
141
-
142
211
  it {files.size.should == 5}
143
212
 
144
213
  it {files[0][:additions].should == 45}
@@ -170,14 +239,6 @@ describe Collector do
170
239
  end
171
240
 
172
241
  describe "#extract_commit" do
173
- # Create buffer which is an array of cleaned lines
174
- let(:buffer) {
175
- buffer = []
176
- fixture(fixture_file).readlines.each do |line|
177
- buffer << Utilities.clean_string(line)
178
- end
179
- buffer
180
- }
181
242
  let(:data) {collector.extract_commit(buffer)}
182
243
 
183
244
  context "with valid buffer" do
@@ -235,24 +296,16 @@ describe Collector do
235
296
  end
236
297
 
237
298
  describe "#fall_back_collect_commit" do
238
- let(:buffer) {collector.fall_back_collect_commit(sha)}
299
+ let(:results) {collector.fall_back_collect_commit(sha)}
239
300
  context "with valid sha" do
240
- # Create buffer which is an array of cleaned lines
241
- let(:expected) {
242
- expected = []
243
- fixture("commit_buffer_whole.txt").readlines.each do |line|
244
- expected << Utilities.clean_string(line)
245
- end
246
- expected
247
- }
301
+ let(:fixture_file) {"commit_buffer_whole.txt"}
248
302
  let(:sha) {"260bc61e2c42930d91f3503c5849b0a2351275cf"}
249
-
250
- it {buffer.should == expected}
303
+ it {results.should == buffer}
251
304
  end
252
305
 
253
306
  context "with invalid sha" do
254
307
  let(:sha) {"111111aa111a11111a11aa11aaaa11a111111a11"}
255
- it {buffer.should == nil}
308
+ it {results.should == nil}
256
309
  end
257
310
  end
258
311
 
data/spec/commits_spec.rb CHANGED
@@ -61,6 +61,79 @@ describe Commits do
61
61
  end
62
62
  end
63
63
 
64
+ describe "#process_commits" do
65
+ let(:commits) {collector.commits.load(fixture(fixture_file))}
66
+ let(:type) {:author}
67
+
68
+ context "with merge" do
69
+ let(:merge) {true}
70
+ subject {
71
+ commits.process_commits(type, merge)
72
+ commits.stats[author_name]
73
+ }
74
+
75
+ context "on first author" do
76
+ let(:author_name) {"Kevin Jalbert"}
77
+ it {subject[:additions].should == 153}
78
+ it {subject[:deletions].should == 5}
79
+ it {subject[:commits].should == 2}
80
+ it {subject[:create].should == 3}
81
+ it {subject[:merges].should == 1}
82
+
83
+ it {subject[:languages][:Markdown][:additions].should == 18}
84
+ it {subject[:languages][:Markdown][:deletions].should == 1}
85
+ it {subject[:languages][:Markdown][:create].should == 1}
86
+ it {subject[:languages][:Ruby][:additions].should == 135}
87
+ it {subject[:languages][:Ruby][:deletions].should == 4}
88
+ it {subject[:languages][:Ruby][:create].should == 2}
89
+ end
90
+
91
+ context "on second author" do
92
+ let(:author_name) {"John Smith"}
93
+ it {subject[:additions].should == 64}
94
+ it {subject[:deletions].should == 16}
95
+ it {subject[:commits].should == 1}
96
+
97
+ it {subject[:languages][:Ruby][:additions].should == 64}
98
+ it {subject[:languages][:Ruby][:deletions].should == 16}
99
+ it {subject[:languages][:Ruby][:create].should == 0}
100
+ end
101
+ end
102
+
103
+ context "without merge" do
104
+ let(:merge) {false}
105
+ subject {
106
+ commits.process_commits(type, merge)
107
+ commits.stats[author_name]
108
+ }
109
+
110
+ context "on first author" do
111
+ let(:author_name) {"Kevin Jalbert"}
112
+ it {subject[:additions].should == 73}
113
+ it {subject[:deletions].should == 0}
114
+ it {subject[:commits].should == 1}
115
+ it {subject[:create].should == 2}
116
+
117
+ it {subject[:languages][:Markdown][:additions].should == 11}
118
+ it {subject[:languages][:Markdown][:deletions].should == 0}
119
+ it {subject[:languages][:Markdown][:create].should == 1}
120
+ it {subject[:languages][:Ruby][:additions].should == 62}
121
+ it {subject[:languages][:Ruby][:deletions].should == 0}
122
+ it {subject[:languages][:Ruby][:create].should == 1}
123
+ end
124
+
125
+ context "on second author" do
126
+ let(:author_name) {"John Smith"}
127
+ it {subject[:additions].should == 64}
128
+ it {subject[:deletions].should == 16}
129
+ it {subject[:commits].should == 1}
130
+
131
+ it {subject[:languages][:Ruby][:additions].should == 64}
132
+ it {subject[:languages][:Ruby][:deletions].should == 16}
133
+ end
134
+ end
135
+ end
136
+
64
137
  describe "#author_top_n_type" do
65
138
  let(:sort) {:deletions}
66
139
 
@@ -24,10 +24,10 @@ describe Utilities do
24
24
 
25
25
  describe "#find_longest_length" do
26
26
  let(:max) {nil}
27
+ let(:list) {[]}
27
28
  let(:results) {Utilities.find_longest_length(list, max)}
28
29
 
29
30
  context "with empty list" do
30
- let(:list) {[]}
31
31
  it {results.should == nil}
32
32
  end
33
33
 
@@ -37,7 +37,6 @@ describe Utilities do
37
37
  end
38
38
 
39
39
  context "with preset minimum length" do
40
- let(:list) {[]}
41
40
  let(:max) {10}
42
41
  it {results.should == 10}
43
42
  end
@@ -202,9 +201,7 @@ describe Utilities do
202
201
  end
203
202
 
204
203
  context "with no files" do
205
- it do
206
- files.should == 0
207
- end
204
+ it {files.should == 0}
208
205
  end
209
206
  end
210
207
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_statistics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
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: 2012-09-25 00:00:00.000000000 Z
12
+ date: 2012-10-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json