git_fame 2.5.1 → 2.5.2
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/.gitmodules +1 -1
- data/.travis.yml +4 -9
- data/git_fame.gemspec +1 -0
- data/lib/git_fame/base.rb +10 -8
- data/lib/git_fame/version.rb +1 -1
- data/spec/git_fame_spec.rb +26 -2
- data/spec/spec_helper.rb +5 -4
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d193069cf48839443661210c94fd812dd1490568
|
4
|
+
data.tar.gz: e3fe0a34dacc2719ccb40cd641fbf3ec5024cfc1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75453bb3d6694ccb3d934a3cb234278c6dfecbcd9f9f2550f5edce1a10c776d345d50a077cc4c33b94b5aba2c7d8ebd59c874fd2f80b642e07062daa3393bece
|
7
|
+
data.tar.gz: 645e9ccb6e9bf43b8fc7d39a3ab953bc16de8c927579f7647f24db4a755ccc02613a3fc945cf9db9753e64e8cef1caf5c9d0d584c98d37db87d5619976cd1be9
|
data/.gitmodules
CHANGED
data/.travis.yml
CHANGED
@@ -6,16 +6,11 @@ rvm:
|
|
6
6
|
- 2.0.0
|
7
7
|
- 1.9.3
|
8
8
|
script:
|
9
|
-
-
|
9
|
+
- bundle exec rspec spec
|
10
10
|
notifications:
|
11
11
|
webhooks:
|
12
12
|
urls:
|
13
13
|
- https://webhooks.gitter.im/e/e2b034ea2dbc919b02f7
|
14
|
-
on_success: change
|
15
|
-
on_failure: change
|
16
|
-
on_start: false
|
17
|
-
before_install:
|
18
|
-
- sudo add-apt-repository ppa:git-core/ppa -y
|
19
|
-
- sudo apt-get update -q
|
20
|
-
- sudo apt-get install git -y
|
21
|
-
- gem install bundler
|
14
|
+
on_success: change
|
15
|
+
on_failure: change
|
16
|
+
on_start: false
|
data/git_fame.gemspec
CHANGED
@@ -36,6 +36,7 @@ Generates stats like:
|
|
36
36
|
gem.add_development_dependency("json", "~> 1.8.3")
|
37
37
|
gem.add_development_dependency("tins", "~> 1.6.0")
|
38
38
|
gem.add_development_dependency("term-ansicolor", "~> 1.3.2")
|
39
|
+
gem.add_development_dependency("colorize")
|
39
40
|
|
40
41
|
gem.required_ruby_version = ">= 1.9.2"
|
41
42
|
end
|
data/lib/git_fame/base.rb
CHANGED
@@ -88,7 +88,6 @@ module GitFame
|
|
88
88
|
]
|
89
89
|
@wopt = args.fetch(:whitespace, false) ? "-w" : ""
|
90
90
|
@authors = {}
|
91
|
-
@cache = {}
|
92
91
|
@verbose = args.fetch(:verbose, false)
|
93
92
|
populate
|
94
93
|
end
|
@@ -368,6 +367,13 @@ module GitFame
|
|
368
367
|
@authors[(email || "").strip] ||= Author.new({ parent: self, name: name })
|
369
368
|
end
|
370
369
|
|
370
|
+
# Lists the paths to contained git submodules
|
371
|
+
def current_submodules
|
372
|
+
execute("git config --file .gitmodules --get-regexp path | awk '{ print $2 }'") do |result|
|
373
|
+
result.to_s.split(/\n/)
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
371
377
|
# List all files in current git directory, excluding
|
372
378
|
# extensions in @extensions defined by the user
|
373
379
|
def current_files
|
@@ -376,13 +382,9 @@ module GitFame
|
|
376
382
|
filter_files(result.to_s.split(/\n/))
|
377
383
|
end
|
378
384
|
else
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
next lines if line.strip.match(/^160000/)
|
383
|
-
next [line.split(/\s+/).last] + lines
|
384
|
-
end
|
385
|
-
filter_files(lines)
|
385
|
+
submodules = current_submodules
|
386
|
+
execute("git #{git_directory_params} ls-tree -r #{commit_range.to_s} --name-only") do |result|
|
387
|
+
filter_files(result.to_s.split(/\n/).select { |f| !submodules.index(f) })
|
386
388
|
end
|
387
389
|
end
|
388
390
|
end
|
data/lib/git_fame/version.rb
CHANGED
data/spec/git_fame_spec.rb
CHANGED
@@ -134,8 +134,8 @@ describe GitFame::Base do
|
|
134
134
|
})
|
135
135
|
end
|
136
136
|
|
137
|
-
let(:author) do
|
138
|
-
subject.authors.find do |author|
|
137
|
+
let(:author) do
|
138
|
+
subject.authors.find do |author|
|
139
139
|
author.name == "7rans"
|
140
140
|
end
|
141
141
|
end
|
@@ -461,4 +461,28 @@ describe GitFame::Base do
|
|
461
461
|
}).commits.should eq(4)
|
462
462
|
end
|
463
463
|
end
|
464
|
+
|
465
|
+
describe "sub modules" do
|
466
|
+
it "should ignore any sub modules" do
|
467
|
+
before = GitFame::Base.new({repository: repository})
|
468
|
+
Dir.chdir(repository) do
|
469
|
+
`git submodule deinit levenshteinish 2>&1`
|
470
|
+
`git rm levenshteinish 2>&1`
|
471
|
+
`git submodule add https://github.com/oleander/levenshteinish.git`
|
472
|
+
`git submodule init`
|
473
|
+
`git add . && git commit -m "Add submodule"`
|
474
|
+
end
|
475
|
+
after = GitFame::Base.new({repository: repository})
|
476
|
+
|
477
|
+
before.authors.count.should eq(after.authors.count)
|
478
|
+
before.authors.zip(after.authors).each do |authors|
|
479
|
+
[:name, :raw_files, :raw_commits,
|
480
|
+
:raw_loc, :files_list,
|
481
|
+
:file_type_counts
|
482
|
+
].each do |field|
|
483
|
+
authors[0].send(field).should eq(authors[1].send(field))
|
484
|
+
end
|
485
|
+
end
|
486
|
+
end
|
487
|
+
end
|
464
488
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,6 +4,7 @@ require "coveralls"
|
|
4
4
|
require "rspec/collection_matchers"
|
5
5
|
require "rspec/expectations"
|
6
6
|
require "pp"
|
7
|
+
require "colorize"
|
7
8
|
require_relative "./support/startup"
|
8
9
|
|
9
10
|
Coveralls.wear!
|
@@ -41,18 +42,18 @@ RSpec.configure do |config|
|
|
41
42
|
mocks.syntax = :should
|
42
43
|
end
|
43
44
|
config.fail_fast = false
|
44
|
-
config.before(:
|
45
|
+
config.before(:each) do
|
45
46
|
Dir.chdir(repository) { system "git checkout 7ab01bc5a720 > /dev/null 2>&1" }
|
46
47
|
end
|
47
48
|
config.before(:suite) do
|
48
49
|
ENV["TZ"] = "GMT-2"
|
49
50
|
warn "-----------"
|
50
|
-
warn "Current environment:"
|
51
|
+
warn "Current environment:".yellow
|
51
52
|
warn "\t#{`git --version`.strip}"
|
52
53
|
warn "\t#{`grep --version`.strip}"
|
53
|
-
warn "Spec notes:"
|
54
|
+
warn "Spec notes:".yellow
|
54
55
|
if suppress_stdout
|
55
|
-
warn "\tMessages to STDOUT has been suppressed. See spec/spec_helper.rb"
|
56
|
+
warn "\tMessages to STDOUT has been suppressed. See spec/spec_helper.rb".red
|
56
57
|
end
|
57
58
|
warn "\tRequires git 2.x for specs to pass"
|
58
59
|
warn "\tTime zone during testing is set to #{ENV["TZ"]}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_fame
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Linus Oleander
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: progressbar
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 1.3.2
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: colorize
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
195
209
|
description: A command-line tool that helps you summarize and pretty-print collaborators
|
196
210
|
in a git repository based on contributions
|
197
211
|
email:
|