turbulence 1.2.0 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZWM3NDQzMzE3NGIwODMyNGE0YmJmZjg1N2E1OThhNzY0M2M3NzNhNQ==
5
- data.tar.gz: !binary |-
6
- MTM3OTcwYmY3MjhmNTljZmI4M2RhMTA0MjVhOTliYjdiNTNmNDM5OA==
7
- !binary "U0hBNTEy":
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- turbulence (1.2.0)
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.1.3)
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.0)
18
- launchy (2.3.0)
17
+ json (1.8.1)
18
+ launchy (2.4.2)
19
19
  addressable (~> 2.3)
20
20
  rake (10.1.0)
21
- rspec (2.6.0)
22
- rspec-core (~> 2.6.0)
23
- rspec-expectations (~> 2.6.0)
24
- rspec-mocks (~> 2.6.0)
25
- rspec-core (2.6.4)
26
- rspec-expectations (2.6.0)
27
- diff-lcs (~> 1.1.2)
28
- rspec-mocks (2.6.0)
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.3.0)
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.6.0)
38
+ rspec (~> 2.14.0)
39
39
  turbulence!
data/bin/bule CHANGED
@@ -1,14 +1,23 @@
1
- #!/usr/bin/env ruby
2
- require 'turbulence'
3
- require 'turbulence/checks_environment'
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
- cli = Turbulence::CommandLineInterface.new(ARGV)
9
+ require 'rubygems'
6
10
 
7
- unless Turbulence::ChecksEnvironment.scm_repo?(Dir.pwd)
8
- STDERR.puts "Turbulence could not calculate metrics, as we could not find a repository in the current directory."
9
- STDERR.puts "Please run bule from inside a repository."
10
- exit
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
- cli.generate_bundle
14
- cli.open_bundle
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,STDOUT, @exclusion_pattern)
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
- case @graph_type
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/
@@ -1,3 +1,3 @@
1
1
  class Turbulence
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -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(ArgumentError)
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['P4CLIENT'] = "c-foo.bar"
44
- Turbulence::Scm::Perforce.is_repo?(".").should == true
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
- ENV['P4CLIENT'] = ""
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
- ENV['PATH'] = ""
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(ArgumentError)
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
@@ -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.6.0'
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.0
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: 2013-09-07 00:00:00.000000000 Z
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.6.0
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.6.0
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
- - !binary |-
92
- YnVsZQ==
91
+ - bule
93
92
  extensions: []
94
93
  extra_rdoc_files: []
95
94
  files:
96
- - !binary |-
97
- LmdpdGlnbm9yZQ==
98
- - !binary |-
99
- LnRyYXZpcy55bWw=
100
- - !binary |-
101
- R2VtZmlsZQ==
102
- - !binary |-
103
- R2VtZmlsZS5sb2Nr
104
- - !binary |-
105
- UkVBRE1FLm1k
106
- - !binary |-
107
- UmFrZWZpbGU=
108
- - !binary |-
109
- YmluL2J1bGU=
110
- - !binary |-
111
- bGliL3R1cmJ1bGVuY2UucmI=
112
- - !binary |-
113
- bGliL3R1cmJ1bGVuY2UvY2FsY3VsYXRvcnMvY2h1cm4ucmI=
114
- - !binary |-
115
- bGliL3R1cmJ1bGVuY2UvY2FsY3VsYXRvcnMvY29tcGxleGl0eS5yYg==
116
- - !binary |-
117
- bGliL3R1cmJ1bGVuY2UvY2hlY2tzX2Vudmlyb25tZW50LnJi
118
- - !binary |-
119
- bGliL3R1cmJ1bGVuY2UvY29tbWFuZF9saW5lX2ludGVyZmFjZS5yYg==
120
- - !binary |-
121
- bGliL3R1cmJ1bGVuY2UvZmlsZV9uYW1lX21hbmdsZXIucmI=
122
- - !binary |-
123
- bGliL3R1cmJ1bGVuY2UvZ2VuZXJhdG9ycy9zY2F0dGVycGxvdC5yYg==
124
- - !binary |-
125
- bGliL3R1cmJ1bGVuY2UvZ2VuZXJhdG9ycy90cmVlbWFwLnJi
126
- - !binary |-
127
- bGliL3R1cmJ1bGVuY2Uvc2NtL2dpdC5yYg==
128
- - !binary |-
129
- bGliL3R1cmJ1bGVuY2Uvc2NtL3BlcmZvcmNlLnJi
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.7
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
- - !binary |-
192
- c3BlYy90dXJidWxlbmNlL2NhbGN1bGF0b3JzL2NodXJuX3NwZWMucmI=
193
- - !binary |-
194
- c3BlYy90dXJidWxlbmNlL2NhbGN1bGF0b3JzL2NvbXBsZXhpdHlfc3BlYy5y
195
- Yg==
196
- - !binary |-
197
- c3BlYy90dXJidWxlbmNlL2NoZWNrc19lbnZpcm9ub21lbnRfc3BlYy5yYg==
198
- - !binary |-
199
- c3BlYy90dXJidWxlbmNlL2NvbW1hbmRfbGluZV9pbnRlcmZhY2Vfc3BlYy5y
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