git_stats 1.0.13 → 1.0.14
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.
- checksums.yaml +4 -4
- data/README.md +16 -14
- data/lib/git_stats/base.rb +2 -3
- data/lib/git_stats/command_parser.rb +31 -0
- data/lib/git_stats/command_runner.rb +13 -0
- data/lib/git_stats/generator.rb +6 -1
- data/lib/git_stats/version.rb +1 -1
- data/spec/git_data/generator_spec.rb +1 -28
- metadata +4 -5
- data/lib/git_stats/git_data/command_parser.rb +0 -33
- data/lib/git_stats/git_data/command_runner.rb +0 -15
- data/lib/git_stats/validator.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8708738d81eee8acb9e0e9a7f63a4b34a043cf5
|
4
|
+
data.tar.gz: 8e81f4164072ce547b6d3917653d39be6ef295c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbab24e9508a3d4bc8ee28bea5f07b5158501e161d0b6c1d8417497585683ae247163fc5b50637ac76f1f66cf2d629c4fe0ab4931f23c9e06af1d4a45f96ebc4
|
7
|
+
data.tar.gz: 9eb0e555c79f0e85ee7012d1adc168576d0330953a1ed13289d893f6094d94da432e06d759cff89e4df37719626a530be2b40b002d03cf94fa563a4da8285214
|
data/README.md
CHANGED
@@ -34,20 +34,22 @@ It browses the repository and outputs html page with statistics.
|
|
34
34
|
git_stats generate
|
35
35
|
|
36
36
|
Options:
|
37
|
-
p, [--path=PATH]
|
38
|
-
|
39
|
-
o, [--out-path=OUT_PATH]
|
40
|
-
|
41
|
-
l, [--language=LANGUAGE]
|
42
|
-
|
43
|
-
f, [--
|
44
|
-
t, [--
|
45
|
-
|
46
|
-
s, [--silent], [--no-silent]
|
47
|
-
d, [--tree=TREE]
|
48
|
-
|
49
|
-
c, [--comment=
|
50
|
-
|
37
|
+
p, [--path=PATH] # Path to repository from which statistics should be generated.
|
38
|
+
# Default: .
|
39
|
+
o, [--out-path=OUT_PATH] # Output path where statistics should be written.
|
40
|
+
# Default: ./git_stats
|
41
|
+
l, [--language=LANGUAGE] # Language of written statistics.
|
42
|
+
# Default: en
|
43
|
+
f, [--first-commit-sha=FIRST_COMMIT_SHA] # Commit from where statistics should start.
|
44
|
+
t, [--last-commit-sha=LAST_COMMIT_SHA] # Commit where statistics should stop.
|
45
|
+
# Default: HEAD
|
46
|
+
s, [--silent], [--no-silent] # Silent mode. Don't output anything.
|
47
|
+
d, [--tree=TREE] # Tree where statistics should be generated.
|
48
|
+
# Default: .
|
49
|
+
c, [--comment-string=COMMENT_STRING] # The string which is used for comments.
|
50
|
+
# Default: //
|
51
|
+
|
52
|
+
Generates the statistics of a repository
|
51
53
|
|
52
54
|
|
53
55
|
|
data/lib/git_stats/base.rb
CHANGED
@@ -8,13 +8,12 @@ require 'git_stats/version'
|
|
8
8
|
require 'git_stats/i18n'
|
9
9
|
require 'git_stats/cli'
|
10
10
|
require 'git_stats/generator'
|
11
|
-
require 'git_stats/
|
11
|
+
require 'git_stats/command_runner'
|
12
|
+
require 'git_stats/command_parser'
|
12
13
|
|
13
14
|
require 'git_stats/git_data/activity'
|
14
15
|
require 'git_stats/git_data/author'
|
15
16
|
require 'git_stats/git_data/blob'
|
16
|
-
require 'git_stats/git_data/command_parser'
|
17
|
-
require 'git_stats/git_data/command_runner'
|
18
17
|
require 'git_stats/git_data/commit'
|
19
18
|
require 'git_stats/git_data/repo'
|
20
19
|
require 'git_stats/git_data/short_stat'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module GitStats
|
3
|
+
class CommandParser
|
4
|
+
def parse(command, result)
|
5
|
+
cmd, params = command.scan(/git (.*) (.*)/).first.map(&:split).flatten
|
6
|
+
send("parse_#{cmd.underscore}", result, params)
|
7
|
+
end
|
8
|
+
|
9
|
+
def parse_shortlog(result, params)
|
10
|
+
result.lines.map do |line|
|
11
|
+
commits, name, email = line.scan(/(.*)\t(.*)<(.*)>/).first.map(&:strip)
|
12
|
+
{commits: commits.to_i, name: name, email: email}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def parse_ls_tree(result, params)
|
17
|
+
result.lines.map do |line|
|
18
|
+
mode, type, sha, filename = line.scan(/(.*) (.*) (.*)\t(.*)/).first.map(&:strip)
|
19
|
+
{mode: mode, type: type, sha: sha, filename: filename}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def parse_rev_list(result, params)
|
24
|
+
result.lines.map do |line|
|
25
|
+
sha, stamp, date, author_email = line.split('|').map(&:strip)
|
26
|
+
{sha: sha, stamp: stamp, date: date, author_email: author_email}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module GitStats
|
3
|
+
class CommandRunner
|
4
|
+
def run(path, command)
|
5
|
+
execute(command, path).encode!('UTF-8', 'UTF-8', :invalid => :replace)
|
6
|
+
end
|
7
|
+
|
8
|
+
private
|
9
|
+
def execute(command, path)
|
10
|
+
Dir.chdir(path) { %x[#{command}] }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/git_stats/generator.rb
CHANGED
@@ -18,7 +18,12 @@ module GitStats
|
|
18
18
|
|
19
19
|
|
20
20
|
def validate_repo_path(repo_path)
|
21
|
-
raise ArgumentError, "#{repo_path} is not a git repository" unless
|
21
|
+
raise ArgumentError, "#{repo_path} is not a git repository" unless valid_repo_path?(repo_path)
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def valid_repo_path?(repo_path)
|
26
|
+
Dir.exists?("#{repo_path}/.git") || File.exists?("#{repo_path}/.git") || File.exists?("#{repo_path}/HEAD")
|
22
27
|
end
|
23
28
|
|
24
29
|
end
|
data/lib/git_stats/version.rb
CHANGED
@@ -6,34 +6,7 @@ describe GitStats::Generator do
|
|
6
6
|
let(:out_path) { 'out_path' }
|
7
7
|
let(:generator) { GitStats::Generator.new(path: repo_path, out_path: out_path) }
|
8
8
|
|
9
|
-
before { Dir.stub(:exists? => true) }
|
10
|
-
|
11
9
|
it 'should raise exception if given repo path is not a git repository' do
|
12
|
-
|
13
|
-
expect { generator }.to raise_error(ArgumentError)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'should pass command observer to repo' do
|
17
|
-
repo = double('repo')
|
18
|
-
GitStats::GitData::Repo.should_receive(:new).with(path: repo_path, out_path: out_path).and_return(repo)
|
19
|
-
|
20
|
-
observer = double('observer')
|
21
|
-
repo.should_receive(:add_command_observer).with(observer)
|
22
|
-
|
23
|
-
generator.add_command_observer observer
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'should render all templates with view data for this repo' do
|
27
|
-
repo = double('repo')
|
28
|
-
GitStats::GitData::Repo.should_receive(:new).with(path: repo_path, out_path: out_path).and_return(repo)
|
29
|
-
|
30
|
-
view_data = double('view_data')
|
31
|
-
GitStats::StatsView::ViewData.should_receive(:new).with(repo).and_return(view_data)
|
32
|
-
|
33
|
-
view = double('view')
|
34
|
-
GitStats::StatsView::View.should_receive(:new).with(view_data, out_path).and_return(view)
|
35
|
-
view.should_receive(:render_all)
|
36
|
-
|
37
|
-
generator.render_all
|
10
|
+
expect { generator }.to raise_error
|
38
11
|
end
|
39
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_stats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Gieniusz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06
|
11
|
+
date: 2014-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -147,6 +147,8 @@ files:
|
|
147
147
|
- lib/git_stats.rb
|
148
148
|
- lib/git_stats/base.rb
|
149
149
|
- lib/git_stats/cli.rb
|
150
|
+
- lib/git_stats/command_parser.rb
|
151
|
+
- lib/git_stats/command_runner.rb
|
150
152
|
- lib/git_stats/core_extensions/enumerable.rb
|
151
153
|
- lib/git_stats/core_extensions/hash.rb
|
152
154
|
- lib/git_stats/core_extensions/string.rb
|
@@ -155,8 +157,6 @@ files:
|
|
155
157
|
- lib/git_stats/git_data/activity.rb
|
156
158
|
- lib/git_stats/git_data/author.rb
|
157
159
|
- lib/git_stats/git_data/blob.rb
|
158
|
-
- lib/git_stats/git_data/command_parser.rb
|
159
|
-
- lib/git_stats/git_data/command_runner.rb
|
160
160
|
- lib/git_stats/git_data/comment_stat.rb
|
161
161
|
- lib/git_stats/git_data/commit.rb
|
162
162
|
- lib/git_stats/git_data/repo.rb
|
@@ -172,7 +172,6 @@ files:
|
|
172
172
|
- lib/git_stats/stats_view/template.rb
|
173
173
|
- lib/git_stats/stats_view/view.rb
|
174
174
|
- lib/git_stats/stats_view/view_data.rb
|
175
|
-
- lib/git_stats/validator.rb
|
176
175
|
- lib/git_stats/version.rb
|
177
176
|
- spec/factories.rb
|
178
177
|
- spec/git_data/activity_spec.rb
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
module GitStats
|
3
|
-
module GitData
|
4
|
-
class CommandParser
|
5
|
-
def parse(command, result)
|
6
|
-
cmd, params = command.scan(/git (.*) (.*)/).first.map(&:split).flatten
|
7
|
-
send("parse_#{cmd.underscore}", result, params)
|
8
|
-
end
|
9
|
-
|
10
|
-
def parse_shortlog(result, params)
|
11
|
-
result.lines.map do |line|
|
12
|
-
commits, name, email = line.scan(/(.*)\t(.*)<(.*)>/).first.map(&:strip)
|
13
|
-
{commits: commits.to_i, name: name, email: email}
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def parse_ls_tree(result, params)
|
18
|
-
result.lines.map do |line|
|
19
|
-
mode, type, sha, filename = line.scan(/(.*) (.*) (.*)\t(.*)/).first.map(&:strip)
|
20
|
-
{mode: mode, type: type, sha: sha, filename: filename}
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def parse_rev_list(result, params)
|
25
|
-
result.lines.map do |line|
|
26
|
-
sha, stamp, date, author_email = line.split('|').map(&:strip)
|
27
|
-
{sha: sha, stamp: stamp, date: date, author_email: author_email}
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
module GitStats
|
3
|
-
module GitData
|
4
|
-
class CommandRunner
|
5
|
-
def run(path, command)
|
6
|
-
execute(command, path).encode!('UTF-8', 'UTF-8', :invalid => :replace)
|
7
|
-
end
|
8
|
-
|
9
|
-
private
|
10
|
-
def execute(command, path)
|
11
|
-
Dir.chdir(path) { %x[#{command}] }
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|