turbulence 1.2.0 → 1.2.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 +6 -14
- data/Gemfile.lock +14 -14
- data/bin/bule +19 -10
- data/lib/turbulence/command_line_interface.rb +5 -8
- data/lib/turbulence/scm/perforce.rb +3 -3
- data/lib/turbulence/version.rb +1 -1
- data/spec/turbulence/command_line_interface_spec.rb +2 -2
- data/spec/turbulence/scm/git_spec.rb +1 -1
- data/spec/turbulence/scm/perforce_spec.rb +30 -8
- data/turbulence.gemspec +1 -1
- metadata +57 -107
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MzdhYzRjNGNmMGQwODEwZTk2ZWNiMzRjMmZjMzUyNzgzY2IzNWY5YWZlODFm
|
10
|
-
MmJlYjNjODAwMDE4YmYyNzlkZDM2NTZkNzY2OWU5NjJmNDVmYzE3OWJlN2I4
|
11
|
-
YmIyOWZhMGMwOTFhOWJjZWIxY2MwYWU4ODlkODMxNjZiM2I4ZDk=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ODk3MmQ1MmUwZmIyOTRkMTRhMjkzYjNjM2M0ZmY0NmQ5ZTMxMDg0OTBiZTIw
|
14
|
-
NjQ1NDVjNjk5OTgxMWQyMTNlMzZhMmU3NzdlMmFjNTJjYTJlOGEyYjhhZjNl
|
15
|
-
MTQ0Mzc0ZDk1ZGFiZjBjNzZlNTAxZDk0YWU3MDAwODE1YTliMDA=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0cc515339556ec42ba24bc366cbabdf099372173
|
4
|
+
data.tar.gz: 93f14f3ed0ee121baed68d6e9a25d2bc88f5b123
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9396fedf8cfabf40b3cf7ecf8f4f09184846bd2c3a9489b0c2210056966bf35a9536f3f75bf5ac465f98b8f32531f1621ade7d24e0643a3b8fe1a373993c82ed
|
7
|
+
data.tar.gz: 9fcc323fb401edc30a9066d8a3dfe0ecc0c586183dcef4ccc91810a1f7caaac420b64079a7e965575f84520e2f1af122a3c7de31fc43f1ede88de8c1f515fe05
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
turbulence (1.2.
|
4
|
+
turbulence (1.2.2)
|
5
5
|
flog (~> 4.1)
|
6
6
|
json (>= 1.4.6)
|
7
7
|
launchy (>= 2.0.0)
|
@@ -10,30 +10,30 @@ GEM
|
|
10
10
|
remote: http://rubygems.org/
|
11
11
|
specs:
|
12
12
|
addressable (2.3.5)
|
13
|
-
diff-lcs (1.
|
13
|
+
diff-lcs (1.2.5)
|
14
14
|
flog (4.1.2)
|
15
15
|
ruby_parser (~> 3.1, > 3.1.0)
|
16
16
|
sexp_processor (~> 4.0)
|
17
|
-
json (1.8.
|
18
|
-
launchy (2.
|
17
|
+
json (1.8.1)
|
18
|
+
launchy (2.4.2)
|
19
19
|
addressable (~> 2.3)
|
20
20
|
rake (10.1.0)
|
21
|
-
rspec (2.
|
22
|
-
rspec-core (~> 2.
|
23
|
-
rspec-expectations (~> 2.
|
24
|
-
rspec-mocks (~> 2.
|
25
|
-
rspec-core (2.
|
26
|
-
rspec-expectations (2.
|
27
|
-
diff-lcs (
|
28
|
-
rspec-mocks (2.
|
21
|
+
rspec (2.14.1)
|
22
|
+
rspec-core (~> 2.14.0)
|
23
|
+
rspec-expectations (~> 2.14.0)
|
24
|
+
rspec-mocks (~> 2.14.0)
|
25
|
+
rspec-core (2.14.7)
|
26
|
+
rspec-expectations (2.14.4)
|
27
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
28
|
+
rspec-mocks (2.14.4)
|
29
29
|
ruby_parser (3.2.2)
|
30
30
|
sexp_processor (~> 4.1)
|
31
|
-
sexp_processor (4.
|
31
|
+
sexp_processor (4.4.0)
|
32
32
|
|
33
33
|
PLATFORMS
|
34
34
|
ruby
|
35
35
|
|
36
36
|
DEPENDENCIES
|
37
37
|
rake
|
38
|
-
rspec (~> 2.
|
38
|
+
rspec (~> 2.14.0)
|
39
39
|
turbulence!
|
data/bin/bule
CHANGED
@@ -1,14 +1,23 @@
|
|
1
|
-
#!/usr/bin/env
|
2
|
-
|
3
|
-
|
1
|
+
#!/usr/bin/env ruby_executable_hooks
|
2
|
+
#
|
3
|
+
# This file was generated by RubyGems.
|
4
|
+
#
|
5
|
+
# The application 'turbulence' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
4
8
|
|
5
|
-
|
9
|
+
require 'rubygems'
|
6
10
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
+
version = ">= 0"
|
12
|
+
|
13
|
+
if ARGV.first
|
14
|
+
str = ARGV.first
|
15
|
+
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
|
16
|
+
if str =~ /\A_(.*)_\z/
|
17
|
+
version = $1
|
18
|
+
ARGV.shift
|
19
|
+
end
|
11
20
|
end
|
12
21
|
|
13
|
-
|
14
|
-
|
22
|
+
gem 'turbulence', version
|
23
|
+
load Gem.bin_path('turbulence', 'bule', version)
|
@@ -16,8 +16,9 @@ class Turbulence
|
|
16
16
|
|
17
17
|
attr_reader :exclusion_pattern
|
18
18
|
attr_reader :directory
|
19
|
-
def initialize(argv)
|
19
|
+
def initialize(argv, additional_options = {})
|
20
20
|
Turbulence::Calculators::Churn.scm = Scm::Git
|
21
|
+
@graph_type = "turbulence"
|
21
22
|
OptionParser.new do |opts|
|
22
23
|
opts.banner = "Usage: bule [options] [dir]"
|
23
24
|
|
@@ -53,6 +54,7 @@ class Turbulence
|
|
53
54
|
end.parse!(argv)
|
54
55
|
|
55
56
|
@directory = argv.first || Dir.pwd
|
57
|
+
@output = additional_options.fetch(:output, STDOUT)
|
56
58
|
end
|
57
59
|
|
58
60
|
def copy_templates_into(directory)
|
@@ -63,7 +65,7 @@ class Turbulence
|
|
63
65
|
FileUtils.mkdir_p("turbulence")
|
64
66
|
|
65
67
|
Dir.chdir("turbulence") do
|
66
|
-
turb = Turbulence.new(directory,
|
68
|
+
turb = Turbulence.new(directory, @output, @exclusion_pattern)
|
67
69
|
|
68
70
|
generator = case @graph_type
|
69
71
|
when "treemap"
|
@@ -77,12 +79,7 @@ class Turbulence
|
|
77
79
|
end
|
78
80
|
|
79
81
|
def open_bundle
|
80
|
-
|
81
|
-
when "treemap"
|
82
|
-
Launchy.open("file://#{directory}/turbulence/treemap.html")
|
83
|
-
else
|
84
|
-
Launchy.open("file://#{directory}/turbulence/turbulence.html")
|
85
|
-
end
|
82
|
+
Launchy.open("file:///#{directory}/turbulence/#{@graph_type}.html")
|
86
83
|
end
|
87
84
|
end
|
88
85
|
end
|
@@ -3,7 +3,7 @@ require 'pathname'
|
|
3
3
|
|
4
4
|
class Turbulence
|
5
5
|
module Scm
|
6
|
-
class Perforce
|
6
|
+
class Perforce
|
7
7
|
class << self
|
8
8
|
def log_command(commit_range = "")
|
9
9
|
full_log = ""
|
@@ -33,7 +33,7 @@ class Turbulence
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def depot_to_local(depot_file)
|
36
|
-
abs_path = extract_clientfile_from_fstat_of(depot_file)
|
36
|
+
abs_path = extract_clientfile_from_fstat_of(depot_file)
|
37
37
|
Pathname.new(abs_path).relative_path_from(Pathname.new(FileUtils.pwd)).to_s
|
38
38
|
end
|
39
39
|
|
@@ -64,7 +64,7 @@ class Turbulence
|
|
64
64
|
"#{arr[0]}\t0\t#{arr[1]}\n"
|
65
65
|
end
|
66
66
|
|
67
|
-
def sum_of_changes(p4_describe_output)
|
67
|
+
def sum_of_changes(p4_describe_output)
|
68
68
|
churn = 0
|
69
69
|
p4_describe_output.each_line do |line|
|
70
70
|
next unless line =~ /(add|deleted|changed) .* (\d+) lines/
|
data/lib/turbulence/version.rb
CHANGED
@@ -2,7 +2,7 @@ require 'rspec'
|
|
2
2
|
require 'turbulence'
|
3
3
|
|
4
4
|
describe Turbulence::CommandLineInterface do
|
5
|
-
let(:cli) { Turbulence::CommandLineInterface.new(%w(.)) }
|
5
|
+
let(:cli) { Turbulence::CommandLineInterface.new(%w(.), :output => nil) }
|
6
6
|
describe "::TEMPLATE_FILES" do
|
7
7
|
Turbulence::CommandLineInterface::TEMPLATE_FILES.each do |template_file|
|
8
8
|
File.dirname(template_file).should == Turbulence::CommandLineInterface::TURBULENCE_TEMPLATE_PATH
|
@@ -22,7 +22,7 @@ describe Turbulence::CommandLineInterface do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "passes along exclusion pattern" do
|
25
|
-
cli = Turbulence::CommandLineInterface.new(%w(--exclude turbulence))
|
25
|
+
cli = Turbulence::CommandLineInterface.new(%w(--exclude turbulence), :output => nil)
|
26
26
|
cli.generate_bundle
|
27
27
|
lines = File.new('turbulence/cc.js').readlines
|
28
28
|
lines.any? { |l| l =~ /turbulence\.rb/ }.should be_false
|
@@ -20,7 +20,7 @@ describe Turbulence::Scm::Git do
|
|
20
20
|
|
21
21
|
describe "::log_command" do
|
22
22
|
it "takes an optional argument specify to the range" do
|
23
|
-
expect{Turbulence::Scm::Git.log_command("d551e63f79a90430e560ea871f4e1e39e6e739bd HEAD")}.to_not raise_error
|
23
|
+
expect{Turbulence::Scm::Git.log_command("d551e63f79a90430e560ea871f4e1e39e6e739bd HEAD")}.to_not raise_error
|
24
24
|
end
|
25
25
|
it "lists insertions/deletions per file and change" do
|
26
26
|
Turbulence::Scm::Git.log_command.should match(/\d+\t\d+\t[A-z.]*/)
|
@@ -3,6 +3,7 @@ require 'rspec/mocks'
|
|
3
3
|
|
4
4
|
describe Turbulence::Scm::Perforce do
|
5
5
|
let (:p4_scm) { Turbulence::Scm::Perforce }
|
6
|
+
|
6
7
|
before do
|
7
8
|
p4_scm.stub(:p4_list_changes) do
|
8
9
|
"Change 62660 on 2005/11/28 by x@client 'CHANGED: adapted to DESCODE '
|
@@ -13,6 +14,7 @@ Change 11250 on 2004/09/17 by x@client 'CHANGED: trigger now also allow'
|
|
13
14
|
Change 9250 on 2004/08/20 by x@client 'BUGFIX: bug#1583 (People can so'
|
14
15
|
Change 5560 on 2004/04/26 by x@client 'ADDED: The \"BRANCHED\" tag.'"
|
15
16
|
end
|
17
|
+
|
16
18
|
p4_scm.stub(:p4_describe_change).with("5560") do
|
17
19
|
"Change 5560 by x@client on 2004/04/26 17:25:03
|
18
20
|
|
@@ -38,20 +40,28 @@ deleted 0 chunks 0 lines
|
|
38
40
|
changed 1 chunks 3 / 1 lines"
|
39
41
|
end
|
40
42
|
end
|
43
|
+
|
41
44
|
describe "::is_repo?" do
|
45
|
+
before :each do
|
46
|
+
ENV.stub(:[]).with("P4CLIENT").and_return(nil)
|
47
|
+
ENV.stub(:[]).with("PATH").and_return("")
|
48
|
+
end
|
49
|
+
|
42
50
|
it "returns true if P4CLIENT is set " do
|
43
|
-
ENV[
|
44
|
-
|
51
|
+
ENV.stub(:[]).with("P4CLIENT").and_return("c-foo.bar")
|
52
|
+
|
53
|
+
Turbulence::Scm::Perforce.is_repo?(".").should be_true
|
45
54
|
end
|
55
|
+
|
46
56
|
it "returns false if P4CLIENT is empty" do
|
47
|
-
|
48
|
-
Turbulence::Scm::Perforce.is_repo?(".").should == false
|
57
|
+
Turbulence::Scm::Perforce.is_repo?(".").should be_false
|
49
58
|
end
|
59
|
+
|
50
60
|
it "returns false if p4 is not available" do
|
51
|
-
|
52
|
-
Turbulence::Scm::Perforce.is_repo?(".").should == false
|
61
|
+
Turbulence::Scm::Perforce.is_repo?(".").should be_false
|
53
62
|
end
|
54
63
|
end
|
64
|
+
|
55
65
|
describe "::log_command" do
|
56
66
|
before do
|
57
67
|
p4_scm.stub(:depot_to_local).with("//admin/scripts/triggers/enforce-submit-comment.py")\
|
@@ -62,19 +72,22 @@ changed 1 chunks 3 / 1 lines"
|
|
62
72
|
"Change 5560 on 2004/04/26 by x@client 'ADDED: The \"BRANCHED\" tag.'"
|
63
73
|
end
|
64
74
|
end
|
75
|
+
|
65
76
|
it "takes an optional argument to specify the range" do
|
66
|
-
expect{Turbulence::Scm::Perforce.log_command("@1,2")}.to_not raise_error
|
77
|
+
expect{Turbulence::Scm::Perforce.log_command("@1,2")}.to_not raise_error
|
67
78
|
end
|
68
79
|
|
69
80
|
it "lists insertions/deletions per file and change" do
|
70
81
|
Turbulence::Scm::Perforce.log_command().should match(/\d+\t\d+\t[A-z.]*/)
|
71
82
|
end
|
72
83
|
end
|
84
|
+
|
73
85
|
describe "::changes" do
|
74
86
|
it "lists changenumbers from parsing 'p4 changes' output" do
|
75
87
|
p4_scm.changes.should =~ %w[62660 45616 45615 45614 11250 9250 5560]
|
76
88
|
end
|
77
89
|
end
|
90
|
+
|
78
91
|
describe "::files_per_change" do
|
79
92
|
before do
|
80
93
|
p4_scm.stub(:depot_to_local).with("//admin/scripts/triggers/enforce-submit-comment.py")\
|
@@ -88,36 +101,42 @@ changed 1 chunks 3 / 1 lines"
|
|
88
101
|
[1,"triggers/check-consistency.py"]]
|
89
102
|
end
|
90
103
|
end
|
104
|
+
|
91
105
|
describe "::transform_for_output" do
|
92
106
|
it "adds a 0 for deletions" do
|
93
107
|
p4_scm.transform_for_output([1,"triggers/check-consistency.py"]).should == "1\t0\ttriggers/check-consistency.py\n"
|
94
108
|
end
|
95
109
|
end
|
110
|
+
|
96
111
|
describe "::depot_to_local" do
|
97
112
|
describe "on windows" do
|
98
113
|
before do
|
99
114
|
p4_scm.stub(:extract_clientfile_from_fstat_of).and_return("D:/Perforce/admin/scripts/triggers/enforce-no-head-change.py")
|
100
115
|
FileUtils.stub(:pwd).and_return("D:/Perforce")
|
101
116
|
end
|
117
|
+
|
102
118
|
it "converts depot-style paths to local paths using forward slashes" do
|
103
119
|
p4_scm.depot_to_local("//admin/scripts/triggers/enforce-no-head-change.py").should \
|
104
120
|
== "admin/scripts/triggers/enforce-no-head-change.py"
|
105
121
|
end
|
106
122
|
end
|
123
|
+
|
107
124
|
describe "on unix" do
|
108
125
|
before do
|
109
126
|
p4_scm.stub(:extract_clientfile_from_fstat_of).and_return("/home/jhwist/admin/scripts/triggers/enforce-no-head-change.py")
|
110
127
|
FileUtils.stub(:pwd).and_return("/home/jhwist")
|
111
128
|
end
|
129
|
+
|
112
130
|
it "converts depot-style paths to local paths using forward slashes" do
|
113
131
|
p4_scm.depot_to_local("//admin/scripts/triggers/enforce-no-head-change.py").should \
|
114
132
|
== "admin/scripts/triggers/enforce-no-head-change.py"
|
115
133
|
end
|
116
134
|
end
|
117
135
|
end
|
136
|
+
|
118
137
|
describe "::extract_clientfile_from_fstat_of" do
|
119
138
|
before do
|
120
|
-
p4_scm.stub(:p4_fstat) do
|
139
|
+
p4_scm.stub(:p4_fstat) do
|
121
140
|
"... depotFile //admin/scripts/triggers/enforce-no-head-change.py
|
122
141
|
... clientFile /home/jhwist/admin/scripts/triggers/enforce-no-head-change.py
|
123
142
|
... isMapped
|
@@ -130,16 +149,19 @@ changed 1 chunks 3 / 1 lines"
|
|
130
149
|
... haveRev 5"
|
131
150
|
end
|
132
151
|
end
|
152
|
+
|
133
153
|
it "uses clientFile field" do
|
134
154
|
p4_scm.extract_clientfile_from_fstat_of("//admin/scripts/triggers/enforce-no-head-change.py").should ==
|
135
155
|
"/home/jhwist/admin/scripts/triggers/enforce-no-head-change.py"
|
136
156
|
end
|
137
157
|
end
|
158
|
+
|
138
159
|
describe "::sum_of_changes" do
|
139
160
|
it "sums up changes" do
|
140
161
|
output = "add 1 chunks 1 lines\ndeleted 0 chunks 0 lines\nchanged 1 chunks 3 / 3 lines"
|
141
162
|
p4_scm.sum_of_changes(output).should == 4
|
142
163
|
end
|
164
|
+
|
143
165
|
it "ignores junk" do
|
144
166
|
output = "add nothing, change nothing"
|
145
167
|
p4_scm.sum_of_changes(output).should == 0
|
data/turbulence.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.add_dependency "flog", "~>4.1"
|
13
13
|
s.add_dependency "json", ">= 1.4.6"
|
14
14
|
s.add_dependency "launchy", ">= 2.0.0"
|
15
|
-
s.add_development_dependency 'rspec', '~> 2.
|
15
|
+
s.add_development_dependency 'rspec', '~> 2.14.0'
|
16
16
|
s.add_development_dependency 'rake'
|
17
17
|
|
18
18
|
s.summary = %q{Automates churn + flog scoring on a git repo for a Ruby project}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbulence
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chad Fowler
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2014-03-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: flog
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
name: json
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - '>='
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 1.4.6
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - '>='
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 1.4.6
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: launchy
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - '>='
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 2.0.0
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - '>='
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: 2.0.0
|
57
57
|
- !ruby/object:Gem::Dependency
|
@@ -60,26 +60,26 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 2.
|
63
|
+
version: 2.14.0
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - ~>
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 2.
|
70
|
+
version: 2.14.0
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rake
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - '>='
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '0'
|
85
85
|
description: Based on this http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=16679&tth=DYN&tt=siteemail&iDyn=2
|
@@ -88,82 +88,44 @@ email:
|
|
88
88
|
- mfeathers@obtiva.com
|
89
89
|
- coreyhaines@gmail.com
|
90
90
|
executables:
|
91
|
-
-
|
92
|
-
YnVsZQ==
|
91
|
+
- bule
|
93
92
|
extensions: []
|
94
93
|
extra_rdoc_files: []
|
95
94
|
files:
|
96
|
-
-
|
97
|
-
|
98
|
-
-
|
99
|
-
|
100
|
-
-
|
101
|
-
|
102
|
-
-
|
103
|
-
|
104
|
-
-
|
105
|
-
|
106
|
-
-
|
107
|
-
|
108
|
-
-
|
109
|
-
|
110
|
-
-
|
111
|
-
|
112
|
-
-
|
113
|
-
|
114
|
-
-
|
115
|
-
|
116
|
-
-
|
117
|
-
|
118
|
-
-
|
119
|
-
|
120
|
-
-
|
121
|
-
|
122
|
-
-
|
123
|
-
|
124
|
-
-
|
125
|
-
|
126
|
-
-
|
127
|
-
|
128
|
-
-
|
129
|
-
|
130
|
-
- !binary |-
|
131
|
-
bGliL3R1cmJ1bGVuY2UvdmVyc2lvbi5yYg==
|
132
|
-
- !binary |-
|
133
|
-
c3BlYy90dXJidWxlbmNlL2NhbGN1bGF0b3JzL2NodXJuX3NwZWMucmI=
|
134
|
-
- !binary |-
|
135
|
-
c3BlYy90dXJidWxlbmNlL2NhbGN1bGF0b3JzL2NvbXBsZXhpdHlfc3BlYy5y
|
136
|
-
Yg==
|
137
|
-
- !binary |-
|
138
|
-
c3BlYy90dXJidWxlbmNlL2NoZWNrc19lbnZpcm9ub21lbnRfc3BlYy5yYg==
|
139
|
-
- !binary |-
|
140
|
-
c3BlYy90dXJidWxlbmNlL2NvbW1hbmRfbGluZV9pbnRlcmZhY2Vfc3BlYy5y
|
141
|
-
Yg==
|
142
|
-
- !binary |-
|
143
|
-
c3BlYy90dXJidWxlbmNlL2dlbmVyYXRvcnMvc2NhdHRlcl9wbG90X3NwZWMu
|
144
|
-
cmI=
|
145
|
-
- !binary |-
|
146
|
-
c3BlYy90dXJidWxlbmNlL2dlbmVyYXRvcnMvdHJlZW1hcF9zcGVjLnJi
|
147
|
-
- !binary |-
|
148
|
-
c3BlYy90dXJidWxlbmNlL3NjbS9naXRfc3BlYy5yYg==
|
149
|
-
- !binary |-
|
150
|
-
c3BlYy90dXJidWxlbmNlL3NjbS9wZXJmb3JjZV9zcGVjLnJi
|
151
|
-
- !binary |-
|
152
|
-
c3BlYy90dXJidWxlbmNlL3R1cmJ1bGVuY2Vfc3BlYy5yYg==
|
153
|
-
- !binary |-
|
154
|
-
dGVtcGxhdGUvaGlnaGNoYXJ0X3RlbXBsYXRlLmpzLmVyYg==
|
155
|
-
- !binary |-
|
156
|
-
dGVtcGxhdGUvaGlnaGNoYXJ0cy5qcw==
|
157
|
-
- !binary |-
|
158
|
-
dGVtcGxhdGUvanF1ZXJ5Lm1pbi5qcw==
|
159
|
-
- !binary |-
|
160
|
-
dGVtcGxhdGUvdHJlZW1hcC5odG1s
|
161
|
-
- !binary |-
|
162
|
-
dGVtcGxhdGUvdHVyYnVsZW5jZS5odG1s
|
163
|
-
- !binary |-
|
164
|
-
dHVyYnVsZW5jZS5nZW1zcGVj
|
165
|
-
- !binary |-
|
166
|
-
d2luX3Jha2VmaWxlX2xvY2F0aW9uX2ZpeC5yYg==
|
95
|
+
- .gitignore
|
96
|
+
- .travis.yml
|
97
|
+
- Gemfile
|
98
|
+
- Gemfile.lock
|
99
|
+
- README.md
|
100
|
+
- Rakefile
|
101
|
+
- bin/bule
|
102
|
+
- lib/turbulence.rb
|
103
|
+
- lib/turbulence/calculators/churn.rb
|
104
|
+
- lib/turbulence/calculators/complexity.rb
|
105
|
+
- lib/turbulence/checks_environment.rb
|
106
|
+
- lib/turbulence/command_line_interface.rb
|
107
|
+
- lib/turbulence/file_name_mangler.rb
|
108
|
+
- lib/turbulence/generators/scatterplot.rb
|
109
|
+
- lib/turbulence/generators/treemap.rb
|
110
|
+
- lib/turbulence/scm/git.rb
|
111
|
+
- lib/turbulence/scm/perforce.rb
|
112
|
+
- lib/turbulence/version.rb
|
113
|
+
- spec/turbulence/calculators/churn_spec.rb
|
114
|
+
- spec/turbulence/calculators/complexity_spec.rb
|
115
|
+
- spec/turbulence/checks_environoment_spec.rb
|
116
|
+
- spec/turbulence/command_line_interface_spec.rb
|
117
|
+
- spec/turbulence/generators/scatter_plot_spec.rb
|
118
|
+
- spec/turbulence/generators/treemap_spec.rb
|
119
|
+
- spec/turbulence/scm/git_spec.rb
|
120
|
+
- spec/turbulence/scm/perforce_spec.rb
|
121
|
+
- spec/turbulence/turbulence_spec.rb
|
122
|
+
- template/highchart_template.js.erb
|
123
|
+
- template/highcharts.js
|
124
|
+
- template/jquery.min.js
|
125
|
+
- template/treemap.html
|
126
|
+
- template/turbulence.html
|
127
|
+
- turbulence.gemspec
|
128
|
+
- win_rakefile_location_fix.rb
|
167
129
|
homepage: http://chadfowler.com
|
168
130
|
licenses: []
|
169
131
|
metadata: {}
|
@@ -173,39 +135,27 @@ require_paths:
|
|
173
135
|
- lib
|
174
136
|
required_ruby_version: !ruby/object:Gem::Requirement
|
175
137
|
requirements:
|
176
|
-
- -
|
138
|
+
- - '>='
|
177
139
|
- !ruby/object:Gem::Version
|
178
140
|
version: 1.8.7
|
179
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
142
|
requirements:
|
181
|
-
- -
|
143
|
+
- - '>='
|
182
144
|
- !ruby/object:Gem::Version
|
183
145
|
version: '0'
|
184
146
|
requirements: []
|
185
147
|
rubyforge_project: turbulence
|
186
|
-
rubygems_version: 2.0.
|
148
|
+
rubygems_version: 2.0.6
|
187
149
|
signing_key:
|
188
150
|
specification_version: 4
|
189
151
|
summary: Automates churn + flog scoring on a git repo for a Ruby project
|
190
152
|
test_files:
|
191
|
-
-
|
192
|
-
|
193
|
-
-
|
194
|
-
|
195
|
-
|
196
|
-
-
|
197
|
-
|
198
|
-
-
|
199
|
-
|
200
|
-
Yg==
|
201
|
-
- !binary |-
|
202
|
-
c3BlYy90dXJidWxlbmNlL2dlbmVyYXRvcnMvc2NhdHRlcl9wbG90X3NwZWMu
|
203
|
-
cmI=
|
204
|
-
- !binary |-
|
205
|
-
c3BlYy90dXJidWxlbmNlL2dlbmVyYXRvcnMvdHJlZW1hcF9zcGVjLnJi
|
206
|
-
- !binary |-
|
207
|
-
c3BlYy90dXJidWxlbmNlL3NjbS9naXRfc3BlYy5yYg==
|
208
|
-
- !binary |-
|
209
|
-
c3BlYy90dXJidWxlbmNlL3NjbS9wZXJmb3JjZV9zcGVjLnJi
|
210
|
-
- !binary |-
|
211
|
-
c3BlYy90dXJidWxlbmNlL3R1cmJ1bGVuY2Vfc3BlYy5yYg==
|
153
|
+
- spec/turbulence/calculators/churn_spec.rb
|
154
|
+
- spec/turbulence/calculators/complexity_spec.rb
|
155
|
+
- spec/turbulence/checks_environoment_spec.rb
|
156
|
+
- spec/turbulence/command_line_interface_spec.rb
|
157
|
+
- spec/turbulence/generators/scatter_plot_spec.rb
|
158
|
+
- spec/turbulence/generators/treemap_spec.rb
|
159
|
+
- spec/turbulence/scm/git_spec.rb
|
160
|
+
- spec/turbulence/scm/perforce_spec.rb
|
161
|
+
- spec/turbulence/turbulence_spec.rb
|