jscruggs-metric_fu 1.1.1 → 1.1.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/HISTORY +8 -0
- data/TODO +0 -4
- data/lib/base/graph.rb +1 -0
- data/lib/base/report.rb +3 -3
- data/lib/generators/rcov.rb +2 -2
- data/lib/generators/saikuro.rb +2 -2
- data/lib/graphs/flay_grapher.rb +3 -2
- data/lib/graphs/flog_grapher.rb +2 -2
- data/lib/graphs/grapher.rb +19 -0
- data/lib/graphs/rcov_grapher.rb +2 -2
- data/lib/graphs/reek_grapher.rb +2 -2
- data/lib/graphs/roodi_grapher.rb +2 -2
- data/lib/metric_fu.rb +7 -2
- data/lib/templates/awesome/css/buttons.css +82 -0
- data/lib/templates/awesome/{default.css → css/default.css} +0 -0
- data/lib/templates/awesome/css/integrity.css +335 -0
- data/lib/templates/awesome/css/reset.css +7 -0
- data/lib/templates/awesome/flog.html.erb +1 -0
- data/lib/templates/awesome/layout.html.erb +4 -4
- data/spec/base/configuration_spec.rb +48 -4
- data/spec/base/graph_spec.rb +24 -0
- data/spec/graphs/flay_grapher_spec.rb +44 -0
- data/spec/graphs/flog_grapher_spec.rb +55 -10
- data/spec/graphs/grapher_spec.rb +9 -0
- data/spec/graphs/rcov_grapher_spec.rb +44 -0
- data/spec/graphs/reek_grapher_spec.rb +53 -0
- data/spec/graphs/roodi_grapher_spec.rb +44 -0
- data/spec/resources/saikuro_sfiles/thing.rb_cyclo.html +1 -0
- data/spec/resources/yml/20090630.yml +7844 -0
- data/spec/spec_helper.rb +1 -23
- metadata +13 -12
data/HISTORY
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== MetricFu 1.1.2 / 2009-7-09
|
2
|
+
|
3
|
+
* Removed dependency on gruff and rmagick (unless the user wants graphs, of course).
|
4
|
+
* New look for styling -- Edouard Brière
|
5
|
+
* Extra param in rcov call was causing problems -- Stewart Welbourne
|
6
|
+
* Preventing rake task from being run multiple times when other rake tasks switch the environment -- Matthew Van Horn
|
7
|
+
* Typo in Rcov dependency verification and fixing parsing Saikuro nested information -- Mark Wilden
|
8
|
+
|
1
9
|
=== MetricFu 1.1.1 / 2009-6-29
|
2
10
|
|
3
11
|
* Fix for empty flog files
|
data/TODO
CHANGED
@@ -2,10 +2,6 @@
|
|
2
2
|
|
3
3
|
* Color code flog results with scale from: http://jakescruggs.blogspot.com/2008/08/whats-good-flog-score.html
|
4
4
|
* Integrate Flog, Saikuro, and Coverage into one report so you can see methods that have high complexity and low coverage (this is a big one)
|
5
|
-
* Move HTML out of code and into templates/
|
6
|
-
* Replace #generate_report with #new on each metric class
|
7
|
-
* Make each class descend from MetricFu::CodeMetric
|
8
|
-
* Generate metrics:* rake tasks for each of CodeMetric's descendants
|
9
5
|
* Update flog specs so that they actually run flog
|
10
6
|
* Add flay specs that run flay
|
11
7
|
* Convert readme to markdown and rename to README.mkdn so github will render it
|
data/lib/base/graph.rb
CHANGED
data/lib/base/report.rb
CHANGED
@@ -35,9 +35,9 @@ module MetricFu
|
|
35
35
|
|
36
36
|
# Instantiates a new template class based on the configuration set
|
37
37
|
# in MetricFu::Configuration, or through the MetricFu.config block
|
38
|
-
# in your rake file (defaults to the included
|
39
|
-
# assigns the report_hash to the report_hash
|
40
|
-
#
|
38
|
+
# in your rake file (defaults to the included AwesomeTemplate),
|
39
|
+
# assigns the report_hash to the report_hash in the template, and
|
40
|
+
# tells the template to to write itself out.
|
41
41
|
def save_templatized_report
|
42
42
|
@template = MetricFu.template_class.new
|
43
43
|
@template.report = report_hash
|
data/lib/generators/rcov.rb
CHANGED
@@ -6,7 +6,7 @@ module MetricFu
|
|
6
6
|
NEW_FILE_MARKER = ("=" * 80) + "\n"
|
7
7
|
|
8
8
|
def self.verify_dependencies!
|
9
|
-
`
|
9
|
+
`rcov --help`
|
10
10
|
unless $?.success?
|
11
11
|
if RUBY_PLATFORM =~ /java/
|
12
12
|
raise 'running in jruby - rcov tasks not available'
|
@@ -36,7 +36,7 @@ module MetricFu
|
|
36
36
|
test_files = FileList[*MetricFu.rcov[:test_files]].join(' ')
|
37
37
|
rcov_opts = MetricFu.rcov[:rcov_opts].join(' ')
|
38
38
|
output = ">> #{MetricFu::Rcov.metric_directory}/rcov.txt"
|
39
|
-
`rcov
|
39
|
+
`rcov #{test_files} #{rcov_opts} #{output}`
|
40
40
|
rescue LoadError
|
41
41
|
if RUBY_PLATFORM =~ /java/
|
42
42
|
puts 'running in jruby - rcov tasks not available'
|
data/lib/generators/saikuro.rb
CHANGED
@@ -120,10 +120,10 @@ module MetricFu
|
|
120
120
|
line = @file_handle.readline
|
121
121
|
element = Saikuro::ParsingElement.new(line)
|
122
122
|
elsif line.match /END/
|
123
|
-
@elements << element
|
123
|
+
@elements << element if element
|
124
124
|
element = nil
|
125
125
|
else
|
126
|
-
element << line
|
126
|
+
element << line if element
|
127
127
|
end
|
128
128
|
end
|
129
129
|
rescue EOFError
|
data/lib/graphs/flay_grapher.rb
CHANGED
data/lib/graphs/flog_grapher.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
module MetricFu
|
2
|
+
class Grapher
|
3
|
+
def initialize
|
4
|
+
self.class.require_gruff
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.require_gruff
|
8
|
+
require 'gruff'
|
9
|
+
rescue LoadError
|
10
|
+
puts "#"*99 + "\n" +
|
11
|
+
"If you want to use metric_fu's graphing features then you'll need to install the gems 'topfunky-gruff' and 'rmagick' "+
|
12
|
+
"(and rmagick requires ImageMagick). "+
|
13
|
+
"If you don't want to deal with that, then make sure you set config.graphs = [] (see the metric_fu's homepage for more details) "+
|
14
|
+
"to indicate that you don't want graphing." +
|
15
|
+
"\n" + "#"*99
|
16
|
+
raise
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/graphs/rcov_grapher.rb
CHANGED
data/lib/graphs/reek_grapher.rb
CHANGED
data/lib/graphs/roodi_grapher.rb
CHANGED
data/lib/metric_fu.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rake'
|
1
2
|
# Load a few things to make our lives easier elsewhere.
|
2
3
|
module MetricFu
|
3
4
|
LIB_ROOT = File.dirname(__FILE__)
|
@@ -13,12 +14,16 @@ require File.join(base_dir, 'report')
|
|
13
14
|
require File.join(base_dir, 'generator')
|
14
15
|
require File.join(base_dir, 'graph')
|
15
16
|
|
16
|
-
#
|
17
|
-
|
17
|
+
# prevent the task from being run multiple times.
|
18
|
+
unless Rake::Task.task_defined? "metrics:all"
|
19
|
+
# Load the rakefile so users of the gem get the default metric_fu task
|
20
|
+
load File.join(MetricFu::LIB_ROOT, '..', 'tasks', 'metric_fu.rake')
|
21
|
+
end
|
18
22
|
|
19
23
|
# Now load everything else that's in the directory
|
20
24
|
Dir[File.join(base_dir, '*.rb')].each{|l| require l }
|
21
25
|
Dir[File.join(generator_dir, '*.rb')].each {|l| require l }
|
22
26
|
Dir[File.join(template_dir, 'standard/*.rb')].each {|l| require l}
|
23
27
|
Dir[File.join(template_dir, 'awesome/*.rb')].each {|l| require l}
|
28
|
+
require graph_dir + "/grapher"
|
24
29
|
Dir[File.join(graph_dir, '*.rb')].each {|l| require l}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
/* --------------------------------------------------------------
|
2
|
+
|
3
|
+
buttons.css
|
4
|
+
* Gives you some great CSS-only buttons.
|
5
|
+
|
6
|
+
Created by Kevin Hale [particletree.com]
|
7
|
+
* particletree.com/features/rediscovering-the-button-element
|
8
|
+
|
9
|
+
See Readme.txt in this folder for instructions.
|
10
|
+
|
11
|
+
-------------------------------------------------------------- */
|
12
|
+
|
13
|
+
button {
|
14
|
+
display:block;
|
15
|
+
float:left;
|
16
|
+
margin:0 0.583em 0.667em 0;
|
17
|
+
padding:5px 10px 5px 7px; /* Links */
|
18
|
+
|
19
|
+
border:1px solid #dedede;
|
20
|
+
border-top:1px solid #eee;
|
21
|
+
border-left:1px solid #eee;
|
22
|
+
|
23
|
+
background-color:#f5f5f5;
|
24
|
+
font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
|
25
|
+
font-size:100%;
|
26
|
+
line-height:130%;
|
27
|
+
text-decoration:none;
|
28
|
+
font-weight:bold;
|
29
|
+
color:#565656;
|
30
|
+
cursor:pointer;
|
31
|
+
}
|
32
|
+
button {
|
33
|
+
width:auto;
|
34
|
+
overflow:visible;
|
35
|
+
padding:4px 10px 3px 7px; /* IE6 */
|
36
|
+
}
|
37
|
+
button[type] {
|
38
|
+
padding:4px 10px 4px 7px; /* Firefox */
|
39
|
+
line-height:17px; /* Safari */
|
40
|
+
}
|
41
|
+
*:first-child+html button[type] {
|
42
|
+
padding:4px 10px 3px 7px; /* IE7 */
|
43
|
+
}
|
44
|
+
button img {
|
45
|
+
margin:0 3px -3px 0 !important;
|
46
|
+
padding:0;
|
47
|
+
border:none;
|
48
|
+
width:16px;
|
49
|
+
height:16px;
|
50
|
+
float:none;
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
/* Button colors
|
55
|
+
-------------------------------------------------------------- */
|
56
|
+
|
57
|
+
/* Standard */
|
58
|
+
button:hover {
|
59
|
+
background-color:#dff4ff;
|
60
|
+
border:1px solid #c2e1ef;
|
61
|
+
color:#336699;
|
62
|
+
}
|
63
|
+
|
64
|
+
/* Positive */
|
65
|
+
body .positive {
|
66
|
+
color:#529214;
|
67
|
+
}
|
68
|
+
button.positive:hover {
|
69
|
+
background-color:#E6EFC2;
|
70
|
+
border:1px solid #C6D880;
|
71
|
+
color:#529214;
|
72
|
+
}
|
73
|
+
|
74
|
+
/* Negative */
|
75
|
+
body .negative {
|
76
|
+
color:#d12f19;
|
77
|
+
}
|
78
|
+
button.negative:hover {
|
79
|
+
background:#fbe3e4;
|
80
|
+
border:1px solid #fbc2c4;
|
81
|
+
color:#d12f19;
|
82
|
+
}
|
File without changes
|
@@ -0,0 +1,335 @@
|
|
1
|
+
html {
|
2
|
+
background-color: #e0e0e0; }
|
3
|
+
|
4
|
+
body {
|
5
|
+
font-size: 100%;
|
6
|
+
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
|
7
|
+
color: #333333; }
|
8
|
+
|
9
|
+
a {
|
10
|
+
color: #ed1556;
|
11
|
+
text-decoration: none; }
|
12
|
+
a:hover {
|
13
|
+
color: #ffffff;
|
14
|
+
background-color: #ed1556; }
|
15
|
+
|
16
|
+
#header, #content, #footer {
|
17
|
+
margin: 0 auto;
|
18
|
+
background: #eeeeee;
|
19
|
+
padding: 0 2em;
|
20
|
+
z-index: 0;
|
21
|
+
position: relative;
|
22
|
+
font-size: 1em; }
|
23
|
+
|
24
|
+
#header {
|
25
|
+
background: #ffffff; }
|
26
|
+
#header h1 {
|
27
|
+
font-weight: bold;
|
28
|
+
font-size: 1.5em; }
|
29
|
+
#header address.watermark {
|
30
|
+
position: absolute;
|
31
|
+
font-weight: bold;
|
32
|
+
right: 3em;
|
33
|
+
top: 0;
|
34
|
+
font-size: .75em;
|
35
|
+
color: #cccccc; }
|
36
|
+
#header address.watermark a {
|
37
|
+
color: #cccccc;
|
38
|
+
font-weight: bold;
|
39
|
+
font-size: 2em; }
|
40
|
+
#header address.watermark a:hover {
|
41
|
+
background: transparent;
|
42
|
+
color: #aaaaaa; }
|
43
|
+
|
44
|
+
#content {
|
45
|
+
padding-top: 1em;
|
46
|
+
padding-bottom: 2em; }
|
47
|
+
#content strong {
|
48
|
+
font-weight: bold; }
|
49
|
+
#content em {
|
50
|
+
font-style: italic; }
|
51
|
+
#content h1, #content h2, #content h3, #content h4, #content h5, #content h6 {
|
52
|
+
color: #4e4e4e; }
|
53
|
+
#content h1 {
|
54
|
+
font-size: 2em;
|
55
|
+
font-weight: bold;
|
56
|
+
margin-bottom: .75em;
|
57
|
+
padding: .25em 0;
|
58
|
+
line-height: 1.2;
|
59
|
+
border-bottom: 1px solid #c0c0c0; }
|
60
|
+
#content h2 {
|
61
|
+
font-weight: bold;
|
62
|
+
font-size: 1.5em;
|
63
|
+
margin: 1em 0 .2em; }
|
64
|
+
#content h3 {
|
65
|
+
font-weight: bold;
|
66
|
+
font-size: 1.25em;
|
67
|
+
margin: .25em 0; }
|
68
|
+
#content h4, #content h5, #content h6 {
|
69
|
+
font-weight: bold;
|
70
|
+
margin-top: .5em; }
|
71
|
+
#content code, #content pre, #content textarea, #content input {
|
72
|
+
font-family: Monaco, Deja Vu Sans Mono, Inconsolata, Consolas, monospace; }
|
73
|
+
#content form p {
|
74
|
+
margin-top: 1em;
|
75
|
+
position: relative; }
|
76
|
+
#content form p.checkbox label {
|
77
|
+
margin-top: 0 !important; }
|
78
|
+
#content form input.text, #content form textarea {
|
79
|
+
width: 30em;
|
80
|
+
padding: .2em .4em;
|
81
|
+
color: #4e4e4e; }
|
82
|
+
#content form input.text {
|
83
|
+
height: 1.4em; }
|
84
|
+
#content form label {
|
85
|
+
float: left;
|
86
|
+
display: block;
|
87
|
+
margin-top: .5em;
|
88
|
+
width: 8em;
|
89
|
+
margin-right: .75em; }
|
90
|
+
#content form .with_errors label {
|
91
|
+
background: red;
|
92
|
+
color: white;
|
93
|
+
position: relative;
|
94
|
+
top: -.7em; }
|
95
|
+
#content form .with_errors.required label {
|
96
|
+
position: static;
|
97
|
+
margin-right: .25em;
|
98
|
+
padding: 0 .2em; }
|
99
|
+
#content form .with_errors input, #content form .with_errors textarea {
|
100
|
+
border: 2px solid #f22;
|
101
|
+
background: #fee;
|
102
|
+
color: #222222; }
|
103
|
+
#content form .required label {
|
104
|
+
float: none;
|
105
|
+
display: block;
|
106
|
+
width: auto;
|
107
|
+
position: relative;
|
108
|
+
font-weight: bold;
|
109
|
+
margin-top: 1em;
|
110
|
+
text-indent: -.65em; }
|
111
|
+
#content form .required label:before {
|
112
|
+
content: "* ";
|
113
|
+
color: #ed1556; }
|
114
|
+
#content form .required input.text {
|
115
|
+
width: 25.6em;
|
116
|
+
font-size: 24px;
|
117
|
+
font-weight: bold; }
|
118
|
+
#content form .normal {
|
119
|
+
margin-top: 2em; }
|
120
|
+
#content form h2.notifier label {
|
121
|
+
float: none;
|
122
|
+
width: auto;
|
123
|
+
margin-right: 0; }
|
124
|
+
#content form h2.notifier label .warning {
|
125
|
+
font-size: .5em;
|
126
|
+
font-weight: normal;
|
127
|
+
color: #999999; }
|
128
|
+
#content form fieldset {
|
129
|
+
padding-bottom: 1em;
|
130
|
+
margin-left: 1.35em;
|
131
|
+
border-bottom: 1px solid #c0c0c0;
|
132
|
+
margin-bottom: 1em; }
|
133
|
+
#content form fieldset h3 {
|
134
|
+
margin-top: 1em;
|
135
|
+
margin-bottom: 0; }
|
136
|
+
#content form fieldset p.normal {
|
137
|
+
margin-top: 1em; }
|
138
|
+
#content form fieldset p label {
|
139
|
+
width: 6.7em; }
|
140
|
+
#content form p.submit {
|
141
|
+
margin-top: 2em; }
|
142
|
+
#content form p.submit:after {
|
143
|
+
display: block;
|
144
|
+
clear: both;
|
145
|
+
float: none;
|
146
|
+
content: ".";
|
147
|
+
text-indent: -9999em;
|
148
|
+
text-align: left; }
|
149
|
+
#content form p.submit.destroy button, #content form p.submit.manual-build button {
|
150
|
+
float: none;
|
151
|
+
display: inline; }
|
152
|
+
#content form p.submit.manual-build button {
|
153
|
+
margin-right: 0; }
|
154
|
+
#content #build form, #content #last_build form {
|
155
|
+
font-size: .75em; }
|
156
|
+
#content #build form p.submit, #content #last_build form p.submit {
|
157
|
+
margin: 0;
|
158
|
+
padding: 0;
|
159
|
+
position: absolute;
|
160
|
+
right: .5em;
|
161
|
+
top: 1.25em; }
|
162
|
+
#content .blank_slate p, #content .error p {
|
163
|
+
position: relative;
|
164
|
+
top: .3em; }
|
165
|
+
#content .blank_slate h1, #content .error h1 {
|
166
|
+
border-width: 0;
|
167
|
+
margin: 0;
|
168
|
+
padding: 0; }
|
169
|
+
#content .blank_slate h1 button, #content .error h1 button {
|
170
|
+
float: none;
|
171
|
+
border: 0 none;
|
172
|
+
background: transparent;
|
173
|
+
display: inline;
|
174
|
+
color: #ed1556;
|
175
|
+
padding: 0.25em 0;
|
176
|
+
margin: 0; }
|
177
|
+
#content .blank_slate h1 button:hover, #content .error h1 button:hover {
|
178
|
+
background: #ed1556;
|
179
|
+
color: #ffffff; }
|
180
|
+
#content .error dt {
|
181
|
+
margin-top: 1.4em;
|
182
|
+
margin-bottom: .3em;
|
183
|
+
font-size: 1.75em;
|
184
|
+
font-family: Georgia, Times New Roman, serif; }
|
185
|
+
#content .error dd {
|
186
|
+
line-height: 1.4; }
|
187
|
+
#content .error .backtrace {
|
188
|
+
margin: 1em 0;
|
189
|
+
overflow: scroll;
|
190
|
+
height: 30em;
|
191
|
+
border: 1px solid #c0c0c0;
|
192
|
+
line-height: 1.6; }
|
193
|
+
#content #projects {
|
194
|
+
margin: 1em 0 2em;
|
195
|
+
border-top: 1px solid #c0c0c0; }
|
196
|
+
#content #projects li {
|
197
|
+
position: relative;
|
198
|
+
border-bottom: 1px solid #c0c0c0; }
|
199
|
+
#content #projects li.odd {
|
200
|
+
background: #e6e6e6; }
|
201
|
+
#content #projects li.building {
|
202
|
+
background: transparent url(/spinner.gif) no-repeat scroll right; }
|
203
|
+
#content #projects li a {
|
204
|
+
font-size: 2em;
|
205
|
+
padding: .25em;
|
206
|
+
line-height: 1.2;
|
207
|
+
font-weight: bold;
|
208
|
+
display: block; }
|
209
|
+
#content #projects li a.success {
|
210
|
+
color: #337022; }
|
211
|
+
#content #projects li a.failed {
|
212
|
+
color: #ff1100; }
|
213
|
+
#content #projects li .meta {
|
214
|
+
position: absolute;
|
215
|
+
right: .6em;
|
216
|
+
top: 1.5em;
|
217
|
+
font-size: 0.8em;
|
218
|
+
color: #999999;
|
219
|
+
text-align: right; }
|
220
|
+
#content #projects li.building .meta {
|
221
|
+
right: 1.6em; }
|
222
|
+
#content #projects li.success .meta {
|
223
|
+
color: #337022; }
|
224
|
+
#content #projects li.failed .meta {
|
225
|
+
color: #ff1100; }
|
226
|
+
#content #previous_builds li a {
|
227
|
+
display: block;
|
228
|
+
padding: .25em;
|
229
|
+
margin-bottom: .25em;
|
230
|
+
border-width: 1px;
|
231
|
+
border-style: solid; }
|
232
|
+
#content #previous_builds li a strong {
|
233
|
+
font-size: 1.3em; }
|
234
|
+
#content #previous_builds li a .attribution {
|
235
|
+
font-size: .9em; }
|
236
|
+
#content #projects li.success a, #content #previous_builds li.success a {
|
237
|
+
background-color: #bbf8aa;
|
238
|
+
border-color: #99d688;
|
239
|
+
color: #337022; }
|
240
|
+
#content #projects li.success a .attribution, #content #previous_builds li.success a .attribution {
|
241
|
+
color: #77b466; }
|
242
|
+
#content #projects li.success a:hover, #content #previous_builds li.success a:hover {
|
243
|
+
background-color: #ddffcc; }
|
244
|
+
#content #projects li.failed a, #content #previous_builds li.failed a {
|
245
|
+
background-color: #ffbbaa;
|
246
|
+
border-color: #dd9988;
|
247
|
+
color: #ff1100; }
|
248
|
+
#content #projects li.failed a .attribution, #content #previous_builds li.failed a .attribution {
|
249
|
+
color: #bb7766; }
|
250
|
+
#content #projects li.failed a:hover, #content #previous_builds li.failed a:hover {
|
251
|
+
background-color: #ffddcc; }
|
252
|
+
#content #build, #content #last_build {
|
253
|
+
position: relative; }
|
254
|
+
#content #build h1, #content #build blockquote, #content #last_build h1, #content #last_build blockquote {
|
255
|
+
border-width: 0 1px;
|
256
|
+
border-style: solid; }
|
257
|
+
#content #build h1, #content #last_build h1 {
|
258
|
+
border-top-width: 1px; }
|
259
|
+
#content #build blockquote, #content #last_build blockquote {
|
260
|
+
bottom-bottom-width: 1px;
|
261
|
+
line-height: 1.4; }
|
262
|
+
#content #build.success h1, #content #build.success blockquote, #content #last_build.success h1, #content #last_build.success blockquote {
|
263
|
+
background-color: #bbf8aa;
|
264
|
+
border-color: #99d688 #ccffbb #ccffbb #99d688; }
|
265
|
+
#content #build.success h1, #content #last_build.success h1 {
|
266
|
+
color: #337022; }
|
267
|
+
#content #build.success .meta, #content #last_build.success .meta {
|
268
|
+
color: #77b466; }
|
269
|
+
#content #build.failed h1, #content #build.failed blockquote, #content #last_build.failed h1, #content #last_build.failed blockquote {
|
270
|
+
background-color: #ffbbaa;
|
271
|
+
border-color: #dd9988 #ffccbb #ffccbb #dd9988; }
|
272
|
+
#content #build.failed h1, #content #last_build.failed h1 {
|
273
|
+
color: #ff1100; }
|
274
|
+
#content #build.failed .meta, #content #last_build.failed .meta {
|
275
|
+
color: #bb7766; }
|
276
|
+
#content #build h1, #content #last_build h1 {
|
277
|
+
margin-top: .5em;
|
278
|
+
margin-bottom: 0;
|
279
|
+
padding: .25em;
|
280
|
+
color: #337022; }
|
281
|
+
#content #build blockquote, #content #last_build blockquote {
|
282
|
+
padding: .75em;
|
283
|
+
margin-bottom: 2em; }
|
284
|
+
#content #build blockquote .meta, #content #last_build blockquote .meta {
|
285
|
+
margin-top: 1em;
|
286
|
+
display: block;
|
287
|
+
font-size: .9em; }
|
288
|
+
#content #build pre.output, #content #last_build pre.output {
|
289
|
+
background: #111;
|
290
|
+
color: #fff;
|
291
|
+
padding: .5em;
|
292
|
+
overflow: auto;
|
293
|
+
max-height: 50em;
|
294
|
+
font-size: .825em; }
|
295
|
+
#content #build pre.output .color30, #content #last_build pre.output .color30 {
|
296
|
+
color: #333; }
|
297
|
+
#content #build pre.output .color31, #content #last_build pre.output .color31 {
|
298
|
+
color: #e33; }
|
299
|
+
#content #build pre.output .color32, #content #last_build pre.output .color32 {
|
300
|
+
color: #3e3; }
|
301
|
+
#content #build pre.output .color33, #content #last_build pre.output .color33 {
|
302
|
+
color: #ee3; }
|
303
|
+
#content #build pre.output .color34, #content #last_build pre.output .color34 {
|
304
|
+
color: #33e; }
|
305
|
+
#content #build pre.output .color35, #content #last_build pre.output .color35 {
|
306
|
+
color: #e3e; }
|
307
|
+
#content #build pre.output .color36, #content #last_build pre.output .color36 {
|
308
|
+
color: #3ee; }
|
309
|
+
#content #build pre.output .color37, #content #last_build pre.output .color37 {
|
310
|
+
color: #fff; }
|
311
|
+
#content #push_path {
|
312
|
+
display: block;
|
313
|
+
margin-top: 1em;
|
314
|
+
margin-left: 2em; }
|
315
|
+
|
316
|
+
a.success {
|
317
|
+
color: #bbf8aa; }
|
318
|
+
a.success:hover {
|
319
|
+
background-color: #bbf8aa;
|
320
|
+
color: white; }
|
321
|
+
a.failed {
|
322
|
+
color: #ffbbaa; }
|
323
|
+
a.failed:hover {
|
324
|
+
background-color: #ffbbaa;
|
325
|
+
color: white; }
|
326
|
+
|
327
|
+
#footer {
|
328
|
+
padding: 1.5em 2.5em;
|
329
|
+
border-top: 1px solid #ccc;
|
330
|
+
font-size: .8em;
|
331
|
+
color: #666;
|
332
|
+
text-align: right; }
|
333
|
+
#footer strong {
|
334
|
+
font-weight: bold; }
|
335
|
+
|