flyerhzm-metric_fu 1.0.0
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/HISTORY +164 -0
- data/MIT-LICENSE +22 -0
- data/Manifest.txt +25 -0
- data/README.textile +27 -0
- data/Rakefile +18 -0
- data/TODO +9 -0
- data/lib/base/base_template.rb +145 -0
- data/lib/base/configuration.rb +180 -0
- data/lib/base/generator.rb +167 -0
- data/lib/base/graph.rb +39 -0
- data/lib/base/md5_tracker.rb +52 -0
- data/lib/base/report.rb +100 -0
- data/lib/generators/churn.rb +90 -0
- data/lib/generators/flay.rb +34 -0
- data/lib/generators/flog.rb +167 -0
- data/lib/generators/rails_best_practices.rb +31 -0
- data/lib/generators/rcov.rb +87 -0
- data/lib/generators/reek.rb +64 -0
- data/lib/generators/roodi.rb +32 -0
- data/lib/generators/saikuro.rb +208 -0
- data/lib/generators/stats.rb +43 -0
- data/lib/graphs/engines/bluff.rb +98 -0
- data/lib/graphs/engines/gchart.rb +119 -0
- data/lib/graphs/flay_grapher.rb +20 -0
- data/lib/graphs/flog_grapher.rb +40 -0
- data/lib/graphs/grapher.rb +11 -0
- data/lib/graphs/rails_best_practices_grapher.rb +20 -0
- data/lib/graphs/rcov_grapher.rb +20 -0
- data/lib/graphs/reek_grapher.rb +32 -0
- data/lib/graphs/roodi_grapher.rb +20 -0
- data/lib/metric_fu.rb +31 -0
- data/lib/templates/awesome/awesome_template.rb +37 -0
- data/lib/templates/awesome/churn.html.erb +19 -0
- data/lib/templates/awesome/css/buttons.css +82 -0
- data/lib/templates/awesome/css/default.css +75 -0
- data/lib/templates/awesome/css/integrity.css +335 -0
- data/lib/templates/awesome/css/reset.css +7 -0
- data/lib/templates/awesome/flay.html.erb +33 -0
- data/lib/templates/awesome/flog.html.erb +53 -0
- data/lib/templates/awesome/index.html.erb +31 -0
- data/lib/templates/awesome/layout.html.erb +30 -0
- data/lib/templates/awesome/rails_best_practices.html.erb +27 -0
- data/lib/templates/awesome/rcov.html.erb +42 -0
- data/lib/templates/awesome/reek.html.erb +40 -0
- data/lib/templates/awesome/roodi.html.erb +27 -0
- data/lib/templates/awesome/saikuro.html.erb +71 -0
- data/lib/templates/awesome/stats.html.erb +41 -0
- data/lib/templates/javascripts/bluff-min.js +1 -0
- data/lib/templates/javascripts/excanvas.js +19 -0
- data/lib/templates/javascripts/js-class.js +1 -0
- data/lib/templates/standard/churn.html.erb +31 -0
- data/lib/templates/standard/default.css +64 -0
- data/lib/templates/standard/flay.html.erb +34 -0
- data/lib/templates/standard/flog.html.erb +53 -0
- data/lib/templates/standard/index.html.erb +41 -0
- data/lib/templates/standard/rails_best_practices.html.erb +29 -0
- data/lib/templates/standard/rcov.html.erb +43 -0
- data/lib/templates/standard/reek.html.erb +42 -0
- data/lib/templates/standard/roodi.html.erb +29 -0
- data/lib/templates/standard/saikuro.html.erb +84 -0
- data/lib/templates/standard/standard_template.rb +26 -0
- data/lib/templates/standard/stats.html.erb +55 -0
- data/spec/base/base_template_spec.rb +161 -0
- data/spec/base/configuration_spec.rb +269 -0
- data/spec/base/generator_spec.rb +244 -0
- data/spec/base/graph_spec.rb +24 -0
- data/spec/base/md5_tracker_spec.rb +57 -0
- data/spec/base/report_spec.rb +139 -0
- data/spec/generators/churn_spec.rb +152 -0
- data/spec/generators/flay_spec.rb +104 -0
- data/spec/generators/flog_spec.rb +238 -0
- data/spec/generators/reek_spec.rb +126 -0
- data/spec/generators/saikuro_spec.rb +58 -0
- data/spec/generators/stats_spec.rb +74 -0
- data/spec/graphs/engines/bluff_spec.rb +15 -0
- data/spec/graphs/engines/gchart_spec.rb +15 -0
- data/spec/graphs/flay_grapher_spec.rb +37 -0
- data/spec/graphs/flog_grapher_spec.rb +45 -0
- data/spec/graphs/rcov_grapher_spec.rb +37 -0
- data/spec/graphs/reek_grapher_spec.rb +46 -0
- data/spec/graphs/roodi_grapher_spec.rb +37 -0
- data/spec/resources/saikuro/app/controllers/sessions_controller.rb_cyclo.html +10 -0
- data/spec/resources/saikuro/app/controllers/users_controller.rb_cyclo.html +16 -0
- data/spec/resources/saikuro/index_cyclo.html +155 -0
- data/spec/resources/saikuro_sfiles/thing.rb_cyclo.html +11 -0
- data/spec/resources/yml/20090630.yml +7844 -0
- data/spec/spec.opts +8 -0
- data/spec/spec_helper.rb +7 -0
- data/tasks/metric_fu.rake +22 -0
- data/vendor/_fonts/monaco.ttf +0 -0
- data/vendor/saikuro/saikuro.rb +1219 -0
- metadata +234 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Rake Stats Results</title>
|
4
|
+
<style>
|
5
|
+
<%= inline_css("default.css") %>
|
6
|
+
</style>
|
7
|
+
</head>
|
8
|
+
|
9
|
+
<body>
|
10
|
+
<h1>Rake Stats Results</h1>
|
11
|
+
<a href="index.html">back to menu</a>
|
12
|
+
<p>Rails rake stats results.</p>
|
13
|
+
<table>
|
14
|
+
<tr>
|
15
|
+
<th>Lines of Code</th>
|
16
|
+
<th>Lines of Test</th>
|
17
|
+
<th>Code to test ratio</th>
|
18
|
+
</tr>
|
19
|
+
<tr>
|
20
|
+
<td><%= @stats[:codeLOC] %></td>
|
21
|
+
<td><%= @stats[:testLOC] %></td>
|
22
|
+
<td>1:<%= @stats[:code_to_test_ratio] %></td>
|
23
|
+
</tr>
|
24
|
+
</table>
|
25
|
+
|
26
|
+
<table>
|
27
|
+
<tr>
|
28
|
+
<th>Name</th>
|
29
|
+
<th>Lines</th>
|
30
|
+
<th>LOC</th>
|
31
|
+
<th>Classes</th>
|
32
|
+
<th>Methods</th>
|
33
|
+
<th>Methods per class</th>
|
34
|
+
<th>LOC per method</th>
|
35
|
+
</tr>
|
36
|
+
<% count = 0 %>
|
37
|
+
<% @stats[:lines].each do |line| %>
|
38
|
+
<tr>
|
39
|
+
<td><%= line[:name] %></td>
|
40
|
+
<td><%= line[:lines] %></td>
|
41
|
+
<td><%= line[:loc] %></td>
|
42
|
+
<td><%= line[:classes] %></td>
|
43
|
+
<td><%= line[:methods] %></td>
|
44
|
+
<td><%= line[:methods_per_class] %></td>
|
45
|
+
<td><%= line[:loc_per_method] %></td>
|
46
|
+
</tr>
|
47
|
+
<% count += 1 %>
|
48
|
+
<% end %>
|
49
|
+
</table>
|
50
|
+
|
51
|
+
<p>Generated on <%= Time.now.localtime %></p>
|
52
|
+
</body>
|
53
|
+
</html>
|
54
|
+
|
55
|
+
|
@@ -0,0 +1,161 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
require 'erb'
|
3
|
+
|
4
|
+
describe MetricFu::Template do
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@template = Template.new
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#erbify" do
|
11
|
+
it 'should evaluate a erb doc' do
|
12
|
+
section = 'section'
|
13
|
+
File.stub!(:read).and_return('foo')
|
14
|
+
erb = mock('erb')
|
15
|
+
erb.should_receive(:result)
|
16
|
+
ERB.should_receive(:new).with('foo').and_return(erb)
|
17
|
+
@template.should_receive(:template).and_return('foo')
|
18
|
+
@template.send(:erbify, section)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#template_exists? " do
|
23
|
+
|
24
|
+
before(:each) do
|
25
|
+
@section = mock('section')
|
26
|
+
@template.should_receive(:template).
|
27
|
+
with(@section).and_return(@section)
|
28
|
+
end
|
29
|
+
|
30
|
+
describe 'if the template exists' do
|
31
|
+
it 'should return true' do
|
32
|
+
File.should_receive(:exist?).with(@section).and_return(true)
|
33
|
+
result = @template.send(:template_exists?, @section)
|
34
|
+
result.should be_true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe 'if the template does not exist' do
|
39
|
+
it 'should return false' do
|
40
|
+
File.should_receive(:exist?).with(@section).and_return(false)
|
41
|
+
result = @template.send(:template_exists?, @section)
|
42
|
+
result.should be_false
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "#create_instance_var" do
|
48
|
+
it 'should set an instance variable with the passed contents' do
|
49
|
+
section = 'section'
|
50
|
+
contents = 'contents'
|
51
|
+
@template.send(:create_instance_var, section, contents)
|
52
|
+
@template.instance_variable_get(:@section).should == contents
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#template" do
|
57
|
+
it 'should generate the filename of the template file' do
|
58
|
+
section = mock('section')
|
59
|
+
section.should_receive(:to_s).and_return('section')
|
60
|
+
@template.should_receive(:this_directory).and_return('dir')
|
61
|
+
result = @template.send(:template, section)
|
62
|
+
result.should == "dir/section.html.erb"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "#output_filename" do
|
67
|
+
it 'should generate the filename of the output file' do
|
68
|
+
section = mock('section')
|
69
|
+
section.should_receive(:to_s).and_return('section')
|
70
|
+
result = @template.send(:output_filename, section)
|
71
|
+
result.should == "section.html"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "#inline_css" do
|
76
|
+
it 'should return the contents of a css file' do
|
77
|
+
css = 'mycss.css'
|
78
|
+
@template.should_receive(:this_directory).and_return('dir')
|
79
|
+
io = mock('io', :read => "css contents")
|
80
|
+
@template.should_receive(:open).and_yield(io)
|
81
|
+
result = @template.send(:inline_css, css)
|
82
|
+
result.should == 'css contents'
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe "#link_to_filename " do
|
87
|
+
describe "when on OS X" do
|
88
|
+
before(:each) do
|
89
|
+
config = mock("configuration")
|
90
|
+
config.stub!(:platform).and_return('universal-darwin-9.0')
|
91
|
+
MetricFu.stub!(:configuration).and_return(config)
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'should return a textmate protocol link' do
|
95
|
+
File.stub!(:expand_path).with('filename').and_return('/expanded/filename')
|
96
|
+
result = @template.send(:link_to_filename, 'filename')
|
97
|
+
result.should eql("<a href='txmt://open/?url=file://" \
|
98
|
+
+ "/expanded/filename'>filename</a>")
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should do the right thing with a filename that starts with a slash" do
|
102
|
+
File.stub!(:expand_path).with('filename').and_return('/expanded/filename')
|
103
|
+
result = @template.send(:link_to_filename, '/filename')
|
104
|
+
result.should eql("<a href='txmt://open/?url=file://" \
|
105
|
+
+ "/expanded/filename'>/filename</a>")
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should include a line number" do
|
109
|
+
File.stub!(:expand_path).with('filename').and_return('/expanded/filename')
|
110
|
+
result = @template.send(:link_to_filename, 'filename', 6)
|
111
|
+
result.should eql("<a href='txmt://open/?url=file://" \
|
112
|
+
+ "/expanded/filename&line=6'>filename:6</a>")
|
113
|
+
end
|
114
|
+
|
115
|
+
describe "and given link text" do
|
116
|
+
it "should use the submitted link text" do
|
117
|
+
File.stub!(:expand_path).with('filename').and_return('/expanded/filename')
|
118
|
+
result = @template.send(:link_to_filename, 'filename', 6, 'link content')
|
119
|
+
result.should eql("<a href='txmt://open/?url=file://" \
|
120
|
+
+ "/expanded/filename&line=6'>link content</a>")
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe "when on other platforms" do
|
126
|
+
before(:each) do
|
127
|
+
config = mock("configuration")
|
128
|
+
config.should_receive(:platform).and_return('other')
|
129
|
+
MetricFu.stub!(:configuration).and_return(config)
|
130
|
+
File.should_receive(:expand_path).and_return('filename')
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should return a file protocol link' do
|
134
|
+
name = "filename"
|
135
|
+
result = @template.send(:link_to_filename, name)
|
136
|
+
result.should == "<a href='file://filename'>filename</a>"
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
describe "#cycle" do
|
142
|
+
it 'should return the first_value passed if iteration passed is even' do
|
143
|
+
first_val = "first"
|
144
|
+
second_val = "second"
|
145
|
+
iter = 2
|
146
|
+
result = @template.send(:cycle, first_val, second_val, iter)
|
147
|
+
result.should == first_val
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'should return the second_value passed if iteration passed is odd' do
|
151
|
+
first_val = "first"
|
152
|
+
second_val = "second"
|
153
|
+
iter = 1
|
154
|
+
result = @template.send(:cycle, first_val, second_val, iter)
|
155
|
+
result.should == second_val
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
|
161
|
+
|
@@ -0,0 +1,269 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe MetricFu::Configuration do
|
4
|
+
|
5
|
+
def get_new_config
|
6
|
+
@config = Configuration.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def base_directory
|
10
|
+
@config.instance_variable_get(:@base_directory)
|
11
|
+
end
|
12
|
+
|
13
|
+
def output_directory
|
14
|
+
@config.instance_variable_get(:@output_directory)
|
15
|
+
end
|
16
|
+
|
17
|
+
def scratch_directory
|
18
|
+
@config.instance_variable_get(:@scratch_directory)
|
19
|
+
end
|
20
|
+
|
21
|
+
def template_directory
|
22
|
+
@config.instance_variable_get(:@template_directory)
|
23
|
+
end
|
24
|
+
|
25
|
+
def template_class
|
26
|
+
@config.instance_variable_get(:@template_class)
|
27
|
+
end
|
28
|
+
|
29
|
+
def metric_fu_root
|
30
|
+
@config.instance_variable_get(:@metric_fu_root_directory)
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#reset" do
|
34
|
+
|
35
|
+
before(:each) { get_new_config }
|
36
|
+
|
37
|
+
describe 'when there is a CC_BUILD_ARTIFACTS environment variable' do
|
38
|
+
before(:each) { ENV['CC_BUILD_ARTIFACTS'] = 'foo' }
|
39
|
+
|
40
|
+
it 'should return the CC_BUILD_ARTIFACTS environment variable' do
|
41
|
+
get_new_config
|
42
|
+
base_directory.should == ENV['CC_BUILD_ARTIFACTS']
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe 'when there is no CC_BUILD_ARTIFACTS environment variable' do
|
47
|
+
before(:each) { ENV['CC_BUILD_ARTIFACTS'] = nil }
|
48
|
+
|
49
|
+
it 'should return "tmp/metric_fu"' do
|
50
|
+
get_new_config
|
51
|
+
base_directory.should == "tmp/metric_fu"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should set @metric_fu_root_directory to the base of the '+
|
56
|
+
'metric_fu application' do
|
57
|
+
app_root = File.join(File.dirname(__FILE__), '..', '..')
|
58
|
+
app_root_absolute_path = File.expand_path(app_root)
|
59
|
+
metric_fu_absolute_path = File.expand_path(metric_fu_root)
|
60
|
+
metric_fu_absolute_path.should == app_root_absolute_path
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should set @template_directory to the lib/templates relative '+
|
64
|
+
'to @metric_fu_root_directory' do
|
65
|
+
template_dir = File.join(File.dirname(__FILE__),
|
66
|
+
'..', '..', 'lib','templates')
|
67
|
+
template_dir_abs_path = File.expand_path(template_dir)
|
68
|
+
calc_template_dir_abs_path = File.expand_path(template_directory)
|
69
|
+
calc_template_dir_abs_path.should == template_dir_abs_path
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should set @scratch_directory to scratch relative '+
|
73
|
+
'to @base_directory' do
|
74
|
+
scratch_dir = File.join(base_directory, 'scratch')
|
75
|
+
scratch_directory.should == scratch_dir
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'should set @output_directory to output relative '+
|
79
|
+
'to @base_directory' do
|
80
|
+
output_dir = File.join(base_directory, 'output')
|
81
|
+
output_directory.should == output_dir
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should set @template_class to AwesomeTemplate' do
|
85
|
+
template_class.should == AwesomeTemplate
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should set @flay to {:dirs_to_flay => @code_dirs}' do
|
89
|
+
@config.instance_variable_get(:@flay).
|
90
|
+
should == {:dirs_to_flay => ['lib']}
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should set @flog to {:dirs_to_flog => @code_dirs}' do
|
94
|
+
@config.instance_variable_get(:@flog).
|
95
|
+
should == {:dirs_to_flog => ['lib']}
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should set @reek to {:dirs_to_reek => @code_dirs}' do
|
99
|
+
@config.instance_variable_get(:@reek).
|
100
|
+
should == {:dirs_to_reek => ['lib']}
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should set @roodi to {:dirs_to_roodi => @code_dirs}' do
|
104
|
+
@config.instance_variable_get(:@roodi).
|
105
|
+
should == {:dirs_to_roodi => ['lib']}
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'should set @churn to {}' do
|
109
|
+
@config.instance_variable_get(:@churn).
|
110
|
+
should == {}
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'should set @stats to {}' do
|
114
|
+
@config.instance_variable_get(:@stats).
|
115
|
+
should == {}
|
116
|
+
end
|
117
|
+
|
118
|
+
it 'should set @rcov to { :test_files => ["test/**/*_test.rb",
|
119
|
+
"spec/**/*_spec.rb"]
|
120
|
+
:rcov_opts => ["--sort coverage",
|
121
|
+
"--no-html",
|
122
|
+
"--text-coverage",
|
123
|
+
"--no-color",
|
124
|
+
"--profile",
|
125
|
+
"--rails",
|
126
|
+
"--exclude /gems/,/Library/,/usr/,spec"]}' do
|
127
|
+
@config.instance_variable_get(:@rcov).
|
128
|
+
should == { :test_files => ['test/**/*_test.rb',
|
129
|
+
'spec/**/*_spec.rb'],
|
130
|
+
:rcov_opts => ["--sort coverage",
|
131
|
+
"--no-html",
|
132
|
+
"--text-coverage",
|
133
|
+
"--no-color",
|
134
|
+
"--profile",
|
135
|
+
"--rails",
|
136
|
+
"--exclude /gems/,/Library/,/usr/,spec"]}
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'should set @saikuro to { :output_directory => @scratch_directory + "/saikuro",
|
140
|
+
:input_directory => @code_dirs,
|
141
|
+
:cyclo => "",
|
142
|
+
:filter_cyclo => "0",
|
143
|
+
:warn_cyclo => "5",
|
144
|
+
:error_cyclo => "7",
|
145
|
+
:formater => "text" }' do
|
146
|
+
@config.instance_variable_get(:@saikuro).
|
147
|
+
should == { :output_directory => "#{scratch_directory}/saikuro",
|
148
|
+
:input_directory => ['lib'],
|
149
|
+
:cyclo => "",
|
150
|
+
:filter_cyclo => "0",
|
151
|
+
:warn_cyclo => "5",
|
152
|
+
:error_cyclo => "7",
|
153
|
+
:formater => "text"}
|
154
|
+
end
|
155
|
+
|
156
|
+
describe 'if #rails? is true ' do
|
157
|
+
before(:each) do
|
158
|
+
@config.stub!(:rails?).and_return(true)
|
159
|
+
end
|
160
|
+
|
161
|
+
describe '#set_metrics ' do
|
162
|
+
it 'should set the @metrics instance var to AVAILABLE_METRICS + '\
|
163
|
+
+'[:stats]' do
|
164
|
+
@config.instance_variable_get(:@metrics).
|
165
|
+
should == MetricFu::AVAILABLE_METRICS << [:stats]
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
describe '#set_graphs ' do
|
170
|
+
it 'should set the @graphs instance var to AVAILABLE_GRAPHS' do
|
171
|
+
@config.instance_variable_get(:@graphs).
|
172
|
+
should == MetricFu::AVAILABLE_GRAPHS
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
describe '#set_code_dirs ' do
|
177
|
+
it 'should set the @code_dirs instance var to ["app", "lib"]' do
|
178
|
+
# This is hard to spec properly because the @code_dirs variable
|
179
|
+
# is set during the reset process.
|
180
|
+
#@config.instance_variable_get(:@code_dirs).
|
181
|
+
# should == ['app','lib']
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
describe 'if #rails? is false ' do
|
187
|
+
before(:each) do
|
188
|
+
@config.stub!(:rails?).and_return(false)
|
189
|
+
end
|
190
|
+
|
191
|
+
describe '#set_metrics ' do
|
192
|
+
it 'should set the @metrics instance var to AVAILABLE_METRICS' do
|
193
|
+
@config.instance_variable_get(:@metrics).
|
194
|
+
should == MetricFu::AVAILABLE_METRICS
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
describe '#set_code_dirs ' do
|
199
|
+
it 'should set the @code_dirs instance var to ["lib"]' do
|
200
|
+
@config.instance_variable_get(:@code_dirs).should == ['lib']
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
describe '#add_attr_accessors_to_self' do
|
207
|
+
|
208
|
+
before(:each) { get_new_config }
|
209
|
+
|
210
|
+
MetricFu::AVAILABLE_METRICS.each do |metric|
|
211
|
+
it "should have a reader for #{metric}" do
|
212
|
+
@config.respond_to?(metric).should be_true
|
213
|
+
end
|
214
|
+
|
215
|
+
it "should have a writer for #{metric}=" do
|
216
|
+
@config.respond_to?((metric.to_s + '=').to_sym).should be_true
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
describe '#add_class_methods_to_metric_fu' do
|
222
|
+
|
223
|
+
before(:each) { get_new_config }
|
224
|
+
|
225
|
+
MetricFu::AVAILABLE_METRICS.each do |metric|
|
226
|
+
it "should add a #{metric} class method to the MetricFu module " do
|
227
|
+
MetricFu.should respond_to(metric)
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
MetricFu::AVAILABLE_GRAPHS.each do |graph|
|
232
|
+
it "should add a #{graph} class metrhod to the MetricFu module" do
|
233
|
+
MetricFu.should respond_to(graph)
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
describe '#platform' do
|
239
|
+
|
240
|
+
before(:each) { get_new_config }
|
241
|
+
|
242
|
+
it 'should return the value of the PLATFORM constant' do
|
243
|
+
this_platform = RUBY_PLATFORM
|
244
|
+
@config.platform.should == this_platform
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
describe '#is_cruise_control_rb? ' do
|
249
|
+
|
250
|
+
before(:each) { get_new_config }
|
251
|
+
describe "when the CC_BUILD_ARTIFACTS env var is not nil" do
|
252
|
+
|
253
|
+
before(:each) { ENV['CC_BUILD_ARTIFACTS'] = 'is set' }
|
254
|
+
|
255
|
+
it 'should return true' do
|
256
|
+
@config.is_cruise_control_rb?.should be_true
|
257
|
+
end
|
258
|
+
|
259
|
+
end
|
260
|
+
|
261
|
+
describe "when the CC_BUILD_ARTIFACTS env var is nil" do
|
262
|
+
before(:each) { ENV['CC_BUILD_ARTIFACTS'] = nil }
|
263
|
+
|
264
|
+
it 'should return false' do
|
265
|
+
@config.is_cruise_control_rb?.should be_false
|
266
|
+
end
|
267
|
+
end
|
268
|
+
end
|
269
|
+
end
|