git_stats 1.0.6 → 1.0.7

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.
@@ -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=