p8-metric_fu 0.9.0.1 → 0.9.0.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.
- data/README +1 -1
- data/Rakefile +2 -19
- data/TODO +1 -2
- data/lib/metric_fu.rb +3 -17
- data/lib/metric_fu/churn.rb +88 -0
- data/lib/metric_fu/flay.rb +17 -0
- data/lib/metric_fu/flog.rb +129 -0
- data/lib/metric_fu/md5_tracker.rb +52 -0
- data/lib/metric_fu/saikuro/saikuro.rb +1214 -0
- data/lib/tasks/churn.rake +9 -0
- data/lib/tasks/coverage.rake +54 -0
- data/lib/tasks/flay.rake +6 -0
- data/lib/tasks/flog.rake +69 -0
- data/lib/tasks/metric_fu.rake +24 -0
- data/lib/tasks/metric_fu.rb +6 -0
- data/lib/tasks/railroad.rake +39 -0
- data/lib/tasks/reek.rake +6 -0
- data/lib/tasks/roodi.rake +7 -0
- data/lib/tasks/saikuro.rake +35 -0
- data/lib/tasks/stats.rake +14 -0
- data/lib/templates/churn.html.erb +22 -0
- data/lib/templates/default.css +45 -0
- data/lib/templates/flay.html.erb +30 -0
- data/lib/templates/flog.html.erb +38 -0
- data/lib/templates/flog_page.html.erb +25 -0
- data/lib/templates/reek.html.erb +30 -0
- data/lib/templates/roodi.html.erb +26 -0
- data/spec/base_spec.rb +80 -0
- data/spec/churn_spec.rb +114 -114
- data/spec/config_spec.rb +103 -103
- data/spec/flay_spec.rb +16 -16
- data/spec/flog_spec.rb +205 -204
- data/spec/reek_spec.rb +23 -23
- data/spec/spec_helper.rb +7 -24
- metadata +1 -1
@@ -0,0 +1,30 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Reek Results</title>
|
4
|
+
<style>
|
5
|
+
<%= inline_css("default.css") %>
|
6
|
+
</style>
|
7
|
+
</head>
|
8
|
+
|
9
|
+
<body>
|
10
|
+
<h1>Reek Results</h1>
|
11
|
+
<p><a href="http://reek.rubyforge.org/">Reek</a> detects common code smells in ruby code.</p>
|
12
|
+
<table>
|
13
|
+
<tr>
|
14
|
+
<th>File Path</th>
|
15
|
+
<th>Code Smell</th>
|
16
|
+
</tr>
|
17
|
+
<% @matches.each_with_index do |match, count| %>
|
18
|
+
<tr class='<%= cycle("light", "dark", count) %>'>
|
19
|
+
<td><%= @filenames[count] ? link_to_filename(@filenames[count]) : match.first %></td>
|
20
|
+
<td>
|
21
|
+
<% match[1..-1].each do |line| %>
|
22
|
+
<%= line %><br>
|
23
|
+
<% end %>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
</table>
|
28
|
+
<p>Generated on <%= Time.now.localtime %></p>
|
29
|
+
</body>
|
30
|
+
</html>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Roodi Results</title>
|
4
|
+
<style>
|
5
|
+
<%= inline_css("default.css") %>
|
6
|
+
</style>
|
7
|
+
</head>
|
8
|
+
|
9
|
+
<body>
|
10
|
+
<h1>Roodi Results</h1>
|
11
|
+
<p><a href="http://roodi.rubyforge.org/">Roodi</a> parses your Ruby code and warns you about design issues you have based on the checks that is has configured.</p>
|
12
|
+
<table>
|
13
|
+
<tr>
|
14
|
+
<th>File Path</th>
|
15
|
+
<th>Warning</th>
|
16
|
+
</tr>
|
17
|
+
<% @matches.each_with_index do |match, count| %>
|
18
|
+
<tr class='<%= cycle("light", "dark", count) %>'>
|
19
|
+
<td><%= link_to_filename(match.first.split(':').first) if match.first %></td>
|
20
|
+
<td><%= match[1] %></td>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
</table>
|
24
|
+
<p>Generated on <%= Time.now.localtime %></p>
|
25
|
+
</body>
|
26
|
+
</html>
|
data/spec/base_spec.rb
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe MetricFu::Base::Generator do
|
4
|
+
describe "save_html" do
|
5
|
+
it "should save to a index.html in the base_dir" do
|
6
|
+
@generator = MetricFu::Base::Generator.new
|
7
|
+
@generator.should_receive(:open).with("#{MetricFu::BASE_DIRECTORY}/generator/index.html", "w")
|
8
|
+
@generator.save_html("<html>")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should save to a custom.html to the base_dir if 'custom' is passed as name" do
|
12
|
+
@generator = MetricFu::Base::Generator.new
|
13
|
+
@generator.should_receive(:open).with("#{MetricFu::BASE_DIRECTORY}/generator/metric_fu/custom.html", "w")
|
14
|
+
@generator.save_html("<html>", 'metric_fu/custom.html')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "generate_report class method" do
|
19
|
+
it "should create a new Generator and call generate_report on it" do
|
20
|
+
@generator = mock('generator')
|
21
|
+
@generator.should_receive(:generate_report)
|
22
|
+
MetricFu::Base::Generator.should_receive(:new).and_return(@generator)
|
23
|
+
MetricFu::Base::Generator.generate_report('base_dir')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "generate_html" do
|
28
|
+
it "should create a new Generator and call generate_report on it" do
|
29
|
+
@generator = MetricFu::Base::Generator.new
|
30
|
+
@generator.should_receive(:open).with("#{MetricFu::BASE_DIRECTORY}/generator/index.html", "w")
|
31
|
+
@generator.should_receive(:generate_html).and_return('<html>')
|
32
|
+
@generator.generate_report
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "cycle" do
|
37
|
+
it "should create a new Generator and call generate_report on it" do
|
38
|
+
@generator = MetricFu::Base::Generator.new
|
39
|
+
@generator.cycle("light", "dark", 0).should == 'light'
|
40
|
+
@generator.cycle("light", "dark", 1).should == 'dark'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "template_name" do
|
45
|
+
it "should return the class name in lowercase" do
|
46
|
+
@generator = MetricFu::Base::Generator.new
|
47
|
+
@generator.template_name.should == 'generator'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "metric_dir" do
|
52
|
+
it "should return tmp/metric_fu/{the class name in lowercase}" do
|
53
|
+
MetricFu::Base::Generator.metric_dir.should == "#{MetricFu::BASE_DIRECTORY}/generator"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "link_to_filename", "when run_by_cruise_control and a url_prefix is specfied" do
|
58
|
+
before(:each) do
|
59
|
+
@generator = MetricFu::Base::Generator.new
|
60
|
+
MetricFu.should_receive(:run_by_cruise_control?).at_least(1).and_return(true)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should return a link using the prefix" do
|
64
|
+
MetricFu::Configuration.run do |config|
|
65
|
+
config.general = { :open_in_browser => true, :url_prefix => 'prefix' }
|
66
|
+
end
|
67
|
+
|
68
|
+
link = @generator.link_to_filename("app/model/foo.rb", 23)
|
69
|
+
link.should == %{<a href="prefix/app/model/foo.rb?line=23#23">app/model/foo.rb</a>}
|
70
|
+
end
|
71
|
+
it "should return a link using the prefix even if the prefix ends with /" do
|
72
|
+
MetricFu::Configuration.run do |config|
|
73
|
+
config.general = { :open_in_browser => true, :url_prefix => 'prefix/' }
|
74
|
+
end
|
75
|
+
|
76
|
+
link = @generator.link_to_filename("app/model/foo.rb", 23)
|
77
|
+
link.should == %{<a href="prefix/app/model/foo.rb?line=23#23">app/model/foo.rb</a>}
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
data/spec/churn_spec.rb
CHANGED
@@ -1,117 +1,117 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
2
|
|
3
|
-
describe Churn do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
# end
|
60
|
-
#
|
61
|
-
# describe MetricFu::Churn::Svn do
|
62
|
-
#
|
63
|
-
# describe "get_logs" do
|
64
|
-
# it "should use the start date if supplied" do
|
65
|
-
# @churn = Churn::Svn.new
|
66
|
-
# @churn.should_receive(:`).with('svn log --verbose').and_return("")
|
67
|
-
# @churn.get_logs
|
68
|
-
# end
|
69
|
-
# it "should use the start date if supplied" do
|
70
|
-
# Time.should_receive(:now).and_return(Date.new(2001, 1, 2))
|
71
|
-
# @churn = Churn::Svn.new(lambda{Date.new(2000, 1, 1)})
|
72
|
-
# @churn.should_receive(:require_rails_env)
|
73
|
-
# @churn.should_receive(:`).with("svn log --revision {2000-01-01}:{2001-01-02} --verbose").and_return("")
|
74
|
-
# @churn.get_logs
|
75
|
-
# end
|
76
|
-
# end
|
77
|
-
#
|
78
|
-
# describe "clean_up_svn_line" do
|
79
|
-
# it "should return nil for non matches" do
|
80
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "Adding Google analytics").should be_nil
|
81
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "A bunch of new files").should be_nil
|
82
|
-
# end
|
83
|
-
#
|
84
|
-
# it "should strip out all but the full path" do
|
85
|
-
# Churn::Svn.new.send(:clean_up_svn_line, " A /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
86
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "A /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
87
|
-
# Churn::Svn.new.send(:clean_up_svn_line, " A /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
88
|
-
# Churn::Svn.new.send(:clean_up_svn_line, " A /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
89
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "A /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
90
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "A /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
91
|
-
#
|
92
|
-
# Churn::Svn.new.send(:clean_up_svn_line, " M /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
93
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "M /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
94
|
-
# Churn::Svn.new.send(:clean_up_svn_line, " M /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
95
|
-
# Churn::Svn.new.send(:clean_up_svn_line, " M /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
96
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "M /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
97
|
-
# Churn::Svn.new.send(:clean_up_svn_line, "M /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
98
|
-
# end
|
99
|
-
# end
|
100
|
-
# end
|
101
|
-
#
|
102
|
-
# describe MetricFu::Churn::Git do
|
103
|
-
#
|
104
|
-
# describe "get_logs" do
|
105
|
-
# it "should use the start date if supplied" do
|
106
|
-
# @churn = Churn::Git.new
|
107
|
-
# @churn.should_receive(:`).with('git log --name-only --pretty=format:').and_return("")
|
108
|
-
# @churn.get_logs
|
109
|
-
# end
|
110
|
-
# it "should use the start date if supplied" do
|
111
|
-
# @churn = Churn::Git.new(lambda{Date.new(2000, 1, 1)})
|
112
|
-
# @churn.should_receive(:require_rails_env)
|
113
|
-
# @churn.should_receive(:`).with("git log --after=2000-01-01 --name-only --pretty=format:").and_return("")
|
114
|
-
# @churn.get_logs
|
115
|
-
# end
|
116
|
-
# end
|
3
|
+
describe MetricFu::Churn do
|
4
|
+
describe "generate_report" do
|
5
|
+
after do
|
6
|
+
load File.dirname(__FILE__) + '/../lib/metric_fu/churn.rb' #need to reload file to wipe out mock of private static
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should strip out files that have less than the min count" do
|
10
|
+
logs = ["accept", "accept", "accept", "reject", "reject"]
|
11
|
+
git_mock = mock('git')
|
12
|
+
git_mock.should_receive(:get_logs).and_return(logs)
|
13
|
+
Churn::Git.should_receive(:new).and_return(git_mock)
|
14
|
+
churn = Churn.new(:scm => :git, :minimum_churn_count => 3)
|
15
|
+
churn.analyze
|
16
|
+
churn.instance_variable_get(:@changes).should == {"accept"=>3}
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should have a default min count of 5" do
|
20
|
+
churn = Churn.new('base_dir')
|
21
|
+
churn.instance_variable_get(:@minimum_churn_count).should == 5
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "template_name" do
|
27
|
+
it "should return the class name in lowercase" do
|
28
|
+
churn = Churn.new
|
29
|
+
churn.template_name.should == 'churn'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "parse_log_for_changes" do
|
34
|
+
it "should count the changes with git" do
|
35
|
+
logs = ["home_page/index.html", "README", "History.txt", "README", "History.txt", "README"]
|
36
|
+
git_mock = mock('git')
|
37
|
+
git_mock.should_receive(:get_logs).and_return(logs)
|
38
|
+
Churn::Git.should_receive(:new).and_return(git_mock)
|
39
|
+
File.should_receive(:exist?).with(".git").and_return(true)
|
40
|
+
changes = Churn.new.send(:parse_log_for_changes)
|
41
|
+
changes["home_page/index.html"].should == 1
|
42
|
+
changes["History.txt"].should == 2
|
43
|
+
changes["README"].should == 3
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should count the changes with svn" do
|
47
|
+
logs = ["home_page/index.html", "README", "History.txt", "README", "History.txt", "README"]
|
48
|
+
svn_mock = mock('svn')
|
49
|
+
svn_mock.should_receive(:get_logs).and_return(logs)
|
50
|
+
Churn::Svn.should_receive(:new).and_return(svn_mock)
|
51
|
+
File.should_receive(:exist?).with(".git").and_return(false)
|
52
|
+
File.should_receive(:exist?).with(".svn").and_return(true)
|
53
|
+
changes = Churn.new.send(:parse_log_for_changes)
|
54
|
+
changes["home_page/index.html"].should == 1
|
55
|
+
changes["History.txt"].should == 2
|
56
|
+
changes["README"].should == 3
|
57
|
+
end
|
58
|
+
end
|
117
59
|
end
|
60
|
+
|
61
|
+
describe MetricFu::Churn::Svn do
|
62
|
+
|
63
|
+
describe "get_logs" do
|
64
|
+
it "should use the start date if supplied" do
|
65
|
+
@churn = Churn::Svn.new
|
66
|
+
@churn.should_receive(:`).with('svn log --verbose').and_return("")
|
67
|
+
@churn.get_logs
|
68
|
+
end
|
69
|
+
it "should use the start date if supplied" do
|
70
|
+
Time.should_receive(:now).and_return(Date.new(2001, 1, 2))
|
71
|
+
@churn = Churn::Svn.new(lambda{Date.new(2000, 1, 1)})
|
72
|
+
@churn.should_receive(:require_rails_env)
|
73
|
+
@churn.should_receive(:`).with("svn log --revision {2000-01-01}:{2001-01-02} --verbose").and_return("")
|
74
|
+
@churn.get_logs
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "clean_up_svn_line" do
|
79
|
+
it "should return nil for non matches" do
|
80
|
+
Churn::Svn.new.send(:clean_up_svn_line, "Adding Google analytics").should be_nil
|
81
|
+
Churn::Svn.new.send(:clean_up_svn_line, "A bunch of new files").should be_nil
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should strip out all but the full path" do
|
85
|
+
Churn::Svn.new.send(:clean_up_svn_line, " A /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
86
|
+
Churn::Svn.new.send(:clean_up_svn_line, "A /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
87
|
+
Churn::Svn.new.send(:clean_up_svn_line, " A /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
88
|
+
Churn::Svn.new.send(:clean_up_svn_line, " A /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
89
|
+
Churn::Svn.new.send(:clean_up_svn_line, "A /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
90
|
+
Churn::Svn.new.send(:clean_up_svn_line, "A /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
91
|
+
|
92
|
+
Churn::Svn.new.send(:clean_up_svn_line, " M /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
93
|
+
Churn::Svn.new.send(:clean_up_svn_line, "M /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
94
|
+
Churn::Svn.new.send(:clean_up_svn_line, " M /trunk/lib/server.rb ").should == "/trunk/lib/server.rb"
|
95
|
+
Churn::Svn.new.send(:clean_up_svn_line, " M /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
96
|
+
Churn::Svn.new.send(:clean_up_svn_line, "M /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
97
|
+
Churn::Svn.new.send(:clean_up_svn_line, "M /trunk/lib/server.rb").should == "/trunk/lib/server.rb"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe MetricFu::Churn::Git do
|
103
|
+
|
104
|
+
describe "get_logs" do
|
105
|
+
it "should use the start date if supplied" do
|
106
|
+
@churn = Churn::Git.new
|
107
|
+
@churn.should_receive(:`).with('git log --name-only --pretty=format:').and_return("")
|
108
|
+
@churn.get_logs
|
109
|
+
end
|
110
|
+
it "should use the start date if supplied" do
|
111
|
+
@churn = Churn::Git.new(lambda{Date.new(2000, 1, 1)})
|
112
|
+
@churn.should_receive(:require_rails_env)
|
113
|
+
@churn.should_receive(:`).with("git log --after=2000-01-01 --name-only --pretty=format:").and_return("")
|
114
|
+
@churn.get_logs
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
data/spec/config_spec.rb
CHANGED
@@ -1,110 +1,110 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
2
|
|
3
3
|
describe MetricFu::Configuration do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
4
|
+
before do
|
5
|
+
MetricFu.configuration.reset
|
6
|
+
end
|
7
|
+
after do
|
8
|
+
ENV['CC_BUILD_ARTIFACTS'] = nil
|
9
|
+
end
|
10
|
+
describe "open_in_browser" do
|
11
|
+
it "should return false if running in cruise" do
|
12
|
+
unless ENV['CC_BUILD_ARTIFACTS']
|
13
|
+
MetricFu.open_in_browser?.should == !!PLATFORM['darwin']
|
14
|
+
ENV['CC_BUILD_ARTIFACTS'] = ''
|
15
|
+
MetricFu.open_in_browser?.should == false
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
20
|
+
describe "metrics" do
|
21
|
+
it "should be configurable" do
|
22
|
+
MetricFu.metrics.should == [:coverage, :churn, :flog, :flay, :reek, :roodi, :saikuro]
|
23
|
+
MetricFu::Configuration.run do |config|
|
24
|
+
config.metrics = [:coverage, :flog]
|
25
|
+
end
|
26
|
+
MetricFu.metrics.should == [:coverage, :flog]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "churn" do
|
31
|
+
it "should be configurable" do
|
32
|
+
now = Time.now
|
33
|
+
MetricFu.churn.should == {}
|
34
|
+
MetricFu::Configuration.run do |config|
|
35
|
+
config.churn[:start_date] = now
|
36
|
+
end
|
37
|
+
MetricFu.churn.should == {:start_date => now }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "coverage" do
|
42
|
+
it "should be configurable" do
|
43
|
+
MetricFu.coverage[:test_files].should == ['test/**/*_test.rb', 'spec/**/*_spec.rb']
|
44
|
+
MetricFu::Configuration.run do |config|
|
45
|
+
config.coverage[:test_files] = ['test/**/test_*.rb']
|
46
|
+
end
|
47
|
+
MetricFu.coverage[:test_files].should == ['test/**/test_*.rb']
|
48
|
+
end
|
49
|
+
end
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
51
|
+
describe "flay" do
|
52
|
+
it "should be configurable" do
|
53
|
+
now = Time.now
|
54
|
+
MetricFu.flay.should == { :dirs_to_flay => ['lib'] }
|
55
|
+
MetricFu::Configuration.run do |config|
|
56
|
+
config.flay[:dirs_to_flay] = ['cms/app', 'cms/lib']
|
57
|
+
end
|
58
|
+
MetricFu.flay.should == { :dirs_to_flay => ['cms/app', 'cms/lib'] }
|
59
|
+
end
|
60
|
+
end
|
61
61
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
62
|
+
describe "flog" do
|
63
|
+
it "should be configurable" do
|
64
|
+
MetricFu.flog.should == { :dirs_to_flog => ['lib'] }
|
65
|
+
MetricFu::Configuration.run do |config|
|
66
|
+
config.flog[:dirs_to_flog] = ['cms/app', 'cms/lib']
|
67
|
+
end
|
68
|
+
MetricFu.flog.should == { :dirs_to_flog => ['cms/app', 'cms/lib'] }
|
69
|
+
end
|
70
|
+
end
|
71
71
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
end
|
72
|
+
describe "saikuro" do
|
73
|
+
it "should be configurable" do
|
74
|
+
MetricFu.saikuro.should == {}
|
75
|
+
MetricFu::Configuration.run do |config|
|
76
|
+
config.saikuro = { "--warn_cyclo" => "3", "--error_cyclo" => "4" }
|
77
|
+
end
|
78
|
+
MetricFu.saikuro.should == { "--warn_cyclo" => "3", "--error_cyclo" => "4" }
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should only accept a Hash" do
|
82
|
+
MetricFu.saikuro.should == {}
|
83
|
+
lambda {
|
84
|
+
MetricFu::Configuration.run do |config|
|
85
|
+
config.saikuro = ''
|
86
|
+
end
|
87
|
+
}.should raise_error
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "reek" do
|
92
|
+
it "should be configurable" do
|
93
|
+
MetricFu.reek.should == { :dirs_to_reek => ['lib'] }
|
94
|
+
MetricFu::Configuration.run do |config|
|
95
|
+
config.reek[:dirs_to_reek] = ['cms/app', 'cms/lib']
|
96
|
+
end
|
97
|
+
MetricFu.reek.should == { :dirs_to_reek => ['cms/app', 'cms/lib'] }
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "roodi" do
|
102
|
+
it "should be configurable" do
|
103
|
+
MetricFu.roodi.should == { :dirs_to_roodi => ['lib'] }
|
104
|
+
MetricFu::Configuration.run do |config|
|
105
|
+
config.roodi[:dirs_to_roodi] = ['cms/app', 'cms/lib']
|
106
|
+
end
|
107
|
+
MetricFu.roodi.should == { :dirs_to_roodi => ['cms/app', 'cms/lib'] }
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|