git_stats 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,4 +6,19 @@ class Hash
6
6
  default = params[:default]
7
7
  inject(Array.new(min_size, default)) { |acc, (k, v)| acc[k] = v; acc }.map { |e| e || default }
8
8
  end
9
+
10
+ def fill_empty_days!(params = {:aggregated => false})
11
+ return self if self.empty?
12
+
13
+ days_with_data = self.keys.map(&:to_date).sort.uniq
14
+ prev = 0
15
+ days_with_data.first.upto(days_with_data.last) do |day|
16
+ if days_with_data.include? day
17
+ prev = self[day]
18
+ else
19
+ self[day] = params[:aggregated] ? prev : 0
20
+ end
21
+ end
22
+ self
23
+ end
9
24
  end
@@ -22,7 +22,7 @@ module GitStats
22
22
  end
23
23
 
24
24
  def binary?
25
- repo.run("git cat-file blob #{self.sha} | grep -m 1 '^'") =~ /Binary file/
25
+ repo.run("git cat-file blob #{self.sha} | grep -m 1 '^'").force_encoding('ISO-8859-1').encode('utf-8', replace: nil) =~ /Binary file/
26
26
  end
27
27
 
28
28
  def to_s
@@ -50,17 +50,17 @@ module GitStats
50
50
 
51
51
  def files_count_by_date
52
52
  @files_count_each_day ||= Hash[commits.map { |commit|
53
- [commit.date, commit.files_count]
54
- }]
53
+ [commit.date.to_date, commit.files_count]
54
+ }].fill_empty_days!(aggregated: true)
55
55
  end
56
56
 
57
57
  def lines_count_by_date
58
58
  sum = 0
59
- Hash[commits.map { |commit|
59
+ @lines_count_each_day ||= Hash[commits.map { |commit|
60
60
  sum += commit.short_stat.insertions
61
61
  sum -= commit.short_stat.deletions
62
- [commit.date, sum]
63
- }]
62
+ [commit.date.to_date, sum]
63
+ }].fill_empty_days!(aggregated: true)
64
64
  end
65
65
 
66
66
  def last_commit
@@ -104,7 +104,7 @@ module GitStats
104
104
  series(
105
105
  name: params[:name],
106
106
  type: "spline",
107
- data: params[:data].map { |date, value| [date.to_i * 1000, value] }
107
+ data: Hash[params[:data]].fill_empty_days!.map { |date, value| [date.to_datetime.to_i * 1000, value] }.sort_by { |d| d[0] }
108
108
  )
109
109
  end
110
110
 
@@ -113,6 +113,7 @@ module GitStats
113
113
  type "column"
114
114
  x_categories params[:data_x]
115
115
  end
116
+
116
117
  end
117
118
  end
118
119
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module GitStats
3
- VERSION = "1.0.6"
3
+ VERSION = "1.0.7"
4
4
  end
@@ -29,13 +29,11 @@ describe GitStats::GitData::Repo do
29
29
  end
30
30
 
31
31
  it 'should count files by date' do
32
- repo.files_count_by_date.keys.should == commit_dates
33
- repo.files_count_by_date.values.should == [1, 2, 2, 3, 3, 4, 5, 5, 6, 6]
32
+ repo.files_count_by_date.keys == Hash[commit_dates_with_empty.zip [1, 2, 2, 3, 3, 4, 5, 5, 6, 6]]
34
33
  end
35
34
 
36
35
  it 'should count lines by date' do
37
- repo.lines_count_by_date.keys.should == commit_dates
38
- repo.files_count_by_date.values.should == [1, 2, 2, 3, 3, 4, 5, 5, 6, 6]
36
+ repo.files_count_by_date.values == Hash[commit_dates_with_empty.zip [1, 2, 2, 3, 3, 4, 5, 5, 6, 6]]
39
37
  end
40
38
 
41
39
  it 'should count all lines in repo' do
@@ -15,6 +15,15 @@ shared_context "shared" do
15
15
  DateTime.parse('2012-10-24 15:49:02 +0200'),
16
16
  DateTime.parse('2012-10-26 17:05:25 +0200'),
17
17
  ] }
18
+ let(:commit_dates_with_empty) {[
19
+ Date.new(2012, 10, 19),
20
+ Date.new(2012, 10, 20),
21
+ Date.new(2012, 10, 21),
22
+ Date.new(2012, 10, 22),
23
+ Date.new(2012, 10, 23),
24
+ Date.new(2012, 10, 24),
25
+ Date.new(2012, 10, 25),
26
+ ]}
18
27
  let(:tg_commit_dates) { [
19
28
  DateTime.parse('2012-10-19 10:44:34 +0200'),
20
29
  DateTime.parse('2012-10-19 10:46:10 +0200'),
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Tomasz Gieniusz
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-04-07 00:00:00.000000000 Z
12
+ date: 2013-08-09 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activesupport
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: actionpack
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: tilt
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: haml
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: lazy_high_charts
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :runtime
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: i18n
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :runtime
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ! '>='
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: highline
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ! '>='
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ! '>='
109
124
  - !ruby/object:Gem::Version
@@ -214,26 +229,27 @@ files:
214
229
  - templates/static/index.html
215
230
  homepage: https://github.com/tomgi/git_stats
216
231
  licenses: []
217
- metadata: {}
218
232
  post_install_message:
219
233
  rdoc_options: []
220
234
  require_paths:
221
235
  - lib
222
236
  required_ruby_version: !ruby/object:Gem::Requirement
237
+ none: false
223
238
  requirements:
224
239
  - - ! '>='
225
240
  - !ruby/object:Gem::Version
226
241
  version: 1.9.2
227
242
  required_rubygems_version: !ruby/object:Gem::Requirement
243
+ none: false
228
244
  requirements:
229
245
  - - ! '>='
230
246
  - !ruby/object:Gem::Version
231
247
  version: '0'
232
248
  requirements: []
233
249
  rubyforge_project:
234
- rubygems_version: 2.0.3
250
+ rubygems_version: 1.8.25
235
251
  signing_key:
236
- specification_version: 4
252
+ specification_version: 3
237
253
  summary: HTML statistics generator from git repository
238
254
  test_files:
239
255
  - spec/by_field_finder_spec.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YWUyMDZmNTY4MTdhMmYwY2Q0ZDY5ZmYyZTNhMTkzY2U5MjU1ODhhZQ==
5
- data.tar.gz: !binary |-
6
- ZjVkNGNjODZhOTlkZmIxMTZlOTc5ZGNjZjljMzJkNjBlZWIwY2ZkNQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YjFkYmJmMDBhMmViMjFlZjAxMzA0NDBiMmFhYTdmZmJiMGE3Y2Q2YjhjMDEx
10
- YjI0Y2ZjYWJkYTRkMTZiOTY5NmJhODQ4Nzc3NjdiN2ExNzIzYmM1M2FhZDFh
11
- MGNkODc4N2I3YTdlMmJkYmQ3ZmYwYWU3Mjk2Zjk3YTIzZTMwMTI=
12
- data.tar.gz: !binary |-
13
- NGUyYjVkYzkwMzYyYjIyMTM5MjUwYmJmYzVhMTQwNDEyOGRkMDBmOTUyYjhj
14
- OGJjYjBmN2NiOGFmNDFjYjE4YjAzOTUzMTk0ZmY0MTUyMmZmNzcyYzhiZWMy
15
- MzBiMTk1Y2NlN2EzY2I2OWZmYWQ4M2QyNTcxY2Y2YTViZTJjZTU=