SlimTest 4.6.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +21 -0
- data/.gemtest +0 -0
- data/History.txt +795 -0
- data/Manifest.txt +38 -0
- data/README.txt +107 -0
- data/Rakefile +52 -0
- data/articles/Article.css +721 -0
- data/articles/getting_started_with_autotest.html +533 -0
- data/articles/how_to_use_zentest.txt +393 -0
- data/bin/slim-autotest +6 -0
- data/bin/slim-multigem +4 -0
- data/bin/slim-multiruby +76 -0
- data/bin/slim-multiruby_setup +74 -0
- data/bin/slim-unit_diff +38 -0
- data/bin/slim-zentest +23 -0
- data/example.txt +42 -0
- data/example1.rb +7 -0
- data/example2.rb +15 -0
- data/example_dot_autotest.rb +16 -0
- data/lib/autotest.rb +852 -0
- data/lib/autotest/autoupdate.rb +26 -0
- data/lib/autotest/bundler.rb +10 -0
- data/lib/autotest/isolate.rb +19 -0
- data/lib/autotest/once.rb +9 -0
- data/lib/autotest/preload.rb +56 -0
- data/lib/autotest/rcov.rb +27 -0
- data/lib/autotest/restart.rb +14 -0
- data/lib/autotest/timestamp.rb +9 -0
- data/lib/focus.rb +25 -0
- data/lib/functional_test_matrix.rb +92 -0
- data/lib/multiruby.rb +412 -0
- data/lib/unit_diff.rb +274 -0
- data/lib/zentest.rb +594 -0
- data/lib/zentest_mapping.rb +117 -0
- data/test/test_autotest.rb +527 -0
- data/test/test_focus.rb +35 -0
- data/test/test_unit_diff.rb +372 -0
- data/test/test_zentest.rb +566 -0
- data/test/test_zentest_mapping.rb +242 -0
- metadata +151 -0
data/Manifest.txt
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
.autotest
|
2
|
+
History.txt
|
3
|
+
Manifest.txt
|
4
|
+
README.txt
|
5
|
+
Rakefile
|
6
|
+
articles/Article.css
|
7
|
+
articles/getting_started_with_autotest.html
|
8
|
+
articles/how_to_use_zentest.txt
|
9
|
+
bin/slim-autotest
|
10
|
+
bin/slim-multigem
|
11
|
+
bin/slim-multiruby
|
12
|
+
bin/slim-multiruby_setup
|
13
|
+
bin/slim-unit_diff
|
14
|
+
bin/slim-zentest
|
15
|
+
example.txt
|
16
|
+
example1.rb
|
17
|
+
example2.rb
|
18
|
+
example_dot_autotest.rb
|
19
|
+
lib/autotest.rb
|
20
|
+
lib/autotest/autoupdate.rb
|
21
|
+
lib/autotest/bundler.rb
|
22
|
+
lib/autotest/isolate.rb
|
23
|
+
lib/autotest/once.rb
|
24
|
+
lib/autotest/preload.rb
|
25
|
+
lib/autotest/rcov.rb
|
26
|
+
lib/autotest/restart.rb
|
27
|
+
lib/autotest/timestamp.rb
|
28
|
+
lib/focus.rb
|
29
|
+
lib/functional_test_matrix.rb
|
30
|
+
lib/multiruby.rb
|
31
|
+
lib/unit_diff.rb
|
32
|
+
lib/zentest.rb
|
33
|
+
lib/zentest_mapping.rb
|
34
|
+
test/test_autotest.rb
|
35
|
+
test/test_focus.rb
|
36
|
+
test/test_unit_diff.rb
|
37
|
+
test/test_zentest.rb
|
38
|
+
test/test_zentest_mapping.rb
|
data/README.txt
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
= ZenTest
|
2
|
+
|
3
|
+
home :: https://github.com/seattlerb/zentest
|
4
|
+
rdoc :: http://zentest.rubyforge.org/ZenTest
|
5
|
+
|
6
|
+
== DESCRIPTION
|
7
|
+
|
8
|
+
ZenTest provides 4 different tools: zentest, unit_diff, autotest, and
|
9
|
+
multiruby.
|
10
|
+
|
11
|
+
ZenTest scans your target and unit-test code and writes your missing
|
12
|
+
code based on simple naming rules, enabling XP at a much quicker
|
13
|
+
pace. ZenTest only works with Ruby and Test::Unit. Nobody uses this
|
14
|
+
tool anymore but it is the package namesake, so it stays.
|
15
|
+
|
16
|
+
unit_diff is a command-line filter to diff expected results from
|
17
|
+
actual results and allow you to quickly see exactly what is wrong.
|
18
|
+
Do note that minitest 2.2+ provides an enhanced assert_equal obviating
|
19
|
+
the need for unit_diff
|
20
|
+
|
21
|
+
autotest is a continous testing facility meant to be used during
|
22
|
+
development. As soon as you save a file, autotest will run the
|
23
|
+
corresponding dependent tests.
|
24
|
+
|
25
|
+
multiruby runs anything you want on multiple versions of ruby. Great
|
26
|
+
for compatibility checking! Use multiruby_setup to manage your
|
27
|
+
installed versions.
|
28
|
+
|
29
|
+
== STRATEGERY
|
30
|
+
|
31
|
+
There are two strategeries intended for ZenTest: test conformance
|
32
|
+
auditing and rapid XP.
|
33
|
+
|
34
|
+
For auditing, ZenTest provides an excellent means of finding methods
|
35
|
+
that have slipped through the testing process. I've run it against my
|
36
|
+
own software and found I missed a lot in a well tested
|
37
|
+
package. Writing those tests found 4 bugs I had no idea existed.
|
38
|
+
|
39
|
+
ZenTest can also be used to evaluate generated code and execute your
|
40
|
+
tests, allowing for very rapid development of both tests and
|
41
|
+
implementation.
|
42
|
+
|
43
|
+
== FEATURES
|
44
|
+
|
45
|
+
* Scans your ruby code and tests and generates missing methods for you.
|
46
|
+
* Includes a very helpful filter for Test/Spec output called unit_diff.
|
47
|
+
* Continually and intelligently test only those files you change with autotest.
|
48
|
+
* Test against multiple versions with multiruby.
|
49
|
+
* Enhance and automatically audit your rails tests using Test::Rails.
|
50
|
+
* Includes a LinuxJournal article on testing with ZenTest written by Pat Eyler.
|
51
|
+
* See also: http://blog.zenspider.com/archives/zentest/
|
52
|
+
* See also: http://blog.segment7.net/articles/category/zentest
|
53
|
+
|
54
|
+
== SYNOPSYS
|
55
|
+
|
56
|
+
ZenTest MyProject.rb TestMyProject.rb > missing.rb
|
57
|
+
|
58
|
+
./TestMyProject.rb | unit_diff
|
59
|
+
|
60
|
+
autotest
|
61
|
+
|
62
|
+
multiruby_setup mri:svn:current
|
63
|
+
multiruby ./TestMyProject.rb
|
64
|
+
|
65
|
+
(and other stuff for Test::Rails)
|
66
|
+
|
67
|
+
== Windows and Color
|
68
|
+
|
69
|
+
Read this: http://blog.mmediasys.com/2010/11/24/we-all-love-colors/
|
70
|
+
|
71
|
+
== REQUIREMENTS
|
72
|
+
|
73
|
+
* Ruby 1.6+, JRuby 1.1.2+, or rubinius
|
74
|
+
* A test/spec framework of your choice.
|
75
|
+
* Hoe (development)
|
76
|
+
* rubygems
|
77
|
+
* diff.exe on windows. Use http://gnuwin32.sourceforge.net/packages.html
|
78
|
+
|
79
|
+
== INSTALL
|
80
|
+
|
81
|
+
* sudo gem install ZenTest
|
82
|
+
|
83
|
+
== LICENSE
|
84
|
+
|
85
|
+
(The MIT License)
|
86
|
+
|
87
|
+
Copyright (c) Ryan Davis, Eric Hodel, seattle.rb
|
88
|
+
|
89
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
90
|
+
a copy of this software and associated documentation files (the
|
91
|
+
"Software"), to deal in the Software without restriction, including
|
92
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
93
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
94
|
+
permit persons to whom the Software is furnished to do so, subject to
|
95
|
+
the following conditions:
|
96
|
+
|
97
|
+
The above copyright notice and this permission notice shall be
|
98
|
+
included in all copies or substantial portions of the Software.
|
99
|
+
|
100
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
101
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
102
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
103
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
104
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
105
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
106
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
107
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
$LOAD_PATH << 'lib'
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'hoe'
|
7
|
+
|
8
|
+
Hoe.add_include_dirs("../../minitest/dev/lib")
|
9
|
+
|
10
|
+
Hoe.plugin :seattlerb
|
11
|
+
|
12
|
+
Hoe.spec "SlimTest" do
|
13
|
+
developer 'Ryan Davis', 'ryand-ruby@zenspider.com'
|
14
|
+
developer 'Eric Hodel', 'drbrain@segment7.net'
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "run autotest on itself"
|
18
|
+
task :autotest do
|
19
|
+
ruby "-Ilib -w ./bin/autotest"
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "update example_dot_autotest.rb with all possible constants"
|
23
|
+
task :update do
|
24
|
+
system "p4 edit example_dot_autotest.rb"
|
25
|
+
File.open "example_dot_autotest.rb", "w" do |f|
|
26
|
+
f.puts "# -*- ruby -*-"
|
27
|
+
f.puts
|
28
|
+
Dir.chdir "lib" do
|
29
|
+
Dir["autotest/*.rb"].sort.each do |s|
|
30
|
+
next if s =~ /rails|discover/
|
31
|
+
f.puts "# require '#{s[0..-4]}'"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
f.puts
|
36
|
+
|
37
|
+
Dir["lib/autotest/*.rb"].sort.each do |file|
|
38
|
+
file = File.read(file)
|
39
|
+
m = file[/module.*/].split(/ /).last rescue nil
|
40
|
+
next unless m
|
41
|
+
|
42
|
+
file.grep(/def[^(]+=/).each do |setter|
|
43
|
+
setter = setter.sub(/^ *def self\./, '').sub(/\s*=\s*/, ' = ')
|
44
|
+
f.puts "# #{m}.#{setter}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
system "p4 diff -du example_dot_autotest.rb"
|
49
|
+
end
|
50
|
+
|
51
|
+
# vim:syntax=ruby
|
52
|
+
|
@@ -0,0 +1,721 @@
|
|
1
|
+
/*
|
2
|
+
* Basic styles for core document typography.
|
3
|
+
*
|
4
|
+
* Influenced by:
|
5
|
+
* - "How to size text using ems" [http://www.clagnut.com/blog/348]
|
6
|
+
*/
|
7
|
+
|
8
|
+
/*************************** Basic Typography ******************************/
|
9
|
+
|
10
|
+
a:link { color: black; } /* unvisited link */
|
11
|
+
a:visited { color: black; } /* visited link */
|
12
|
+
a:hover { color: black; } /* mouse over link */
|
13
|
+
a:active { color: black; } /* selected link */
|
14
|
+
|
15
|
+
html {
|
16
|
+
background: white;
|
17
|
+
color: black;
|
18
|
+
text-align: center; /* IE hack to workaround for block centering. */
|
19
|
+
margin: 0;
|
20
|
+
padding: 0;
|
21
|
+
}
|
22
|
+
|
23
|
+
|
24
|
+
body {
|
25
|
+
margin: 0;
|
26
|
+
padding: 0;
|
27
|
+
font-family: Lucida Grande, sans-serif;
|
28
|
+
}
|
29
|
+
|
30
|
+
* {
|
31
|
+
font-family: Lucida Grande, sans-serif;
|
32
|
+
}
|
33
|
+
|
34
|
+
img { vertical-align: middle; }
|
35
|
+
|
36
|
+
p, li, dt, dd {
|
37
|
+
line-height: 1.5;
|
38
|
+
font-size: .95em;
|
39
|
+
}
|
40
|
+
|
41
|
+
p, ul, ol, dl {
|
42
|
+
margin-left: 3em;
|
43
|
+
margin-right: 2em;
|
44
|
+
}
|
45
|
+
|
46
|
+
p + p {
|
47
|
+
text-indent: 1.4em;
|
48
|
+
}
|
49
|
+
|
50
|
+
dl {
|
51
|
+
margin: 1em 3em;
|
52
|
+
}
|
53
|
+
|
54
|
+
dl dt a {
|
55
|
+
font: 1.5em bold Lucida Grande, sans-serif;
|
56
|
+
}
|
57
|
+
|
58
|
+
dl dt {
|
59
|
+
font-weight: bold;
|
60
|
+
}
|
61
|
+
|
62
|
+
dl dd {
|
63
|
+
margin: 0em 3em;
|
64
|
+
}
|
65
|
+
|
66
|
+
ul {
|
67
|
+
list-style: square outside;
|
68
|
+
}
|
69
|
+
|
70
|
+
li p { /* Markdown define paragraphs for list items. */
|
71
|
+
margin: 0;
|
72
|
+
}
|
73
|
+
|
74
|
+
/*
|
75
|
+
* Ensure that nested items have the same size as their parent as we are
|
76
|
+
* using (relative) em sizing.
|
77
|
+
*/
|
78
|
+
li li, li p, td p, blockquote p {
|
79
|
+
font-size: 1em;
|
80
|
+
}
|
81
|
+
|
82
|
+
abbr, acronym {
|
83
|
+
letter-spacing:0.1em
|
84
|
+
font-variant: small-caps;
|
85
|
+
}
|
86
|
+
|
87
|
+
em {
|
88
|
+
font-style: italic;
|
89
|
+
}
|
90
|
+
|
91
|
+
term {
|
92
|
+
font-style: italic;
|
93
|
+
}
|
94
|
+
|
95
|
+
cite {
|
96
|
+
font-style: italic;
|
97
|
+
}
|
98
|
+
input, select, th, td {font-size:1em}
|
99
|
+
|
100
|
+
/******************************* Headers ********************************/
|
101
|
+
|
102
|
+
h1 {
|
103
|
+
text-align: center;
|
104
|
+
padding: .3em 2em 0em 2em;
|
105
|
+
margin: 0;
|
106
|
+
color: black;
|
107
|
+
font-size: 1.3em;
|
108
|
+
}
|
109
|
+
|
110
|
+
h2 {
|
111
|
+
margin-left: 0.4em;
|
112
|
+
font-weight: bold;
|
113
|
+
font-size: 1.2em;
|
114
|
+
border-bottom: medium #5089da solid;
|
115
|
+
}
|
116
|
+
|
117
|
+
h3 {
|
118
|
+
font-size: 1.2em;
|
119
|
+
margin-left: .5em;
|
120
|
+
margin-right: auto;
|
121
|
+
color: #929292;
|
122
|
+
border-bottom: thin solid #929292;
|
123
|
+
}
|
124
|
+
|
125
|
+
/************************ Editing / Authoring ********************/
|
126
|
+
|
127
|
+
.todo {
|
128
|
+
background: red;
|
129
|
+
color: yellow;
|
130
|
+
font-weight: bold;
|
131
|
+
}
|
132
|
+
|
133
|
+
/************************ Samples, Input, Code, Commands ********************/
|
134
|
+
|
135
|
+
code {
|
136
|
+
font-family: monospace;
|
137
|
+
}
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
kbd:before {
|
142
|
+
content: open-quote;
|
143
|
+
}
|
144
|
+
|
145
|
+
kbd:after {
|
146
|
+
content: close-quote;
|
147
|
+
}
|
148
|
+
|
149
|
+
|
150
|
+
code, kbd, var, pre {
|
151
|
+
font-family: monaco, "Courier New", courier, monospace;
|
152
|
+
font-size: 14px;
|
153
|
+
}
|
154
|
+
|
155
|
+
.command-box {
|
156
|
+
clear: right; /* Side notes. */
|
157
|
+
border: 1px dotted #888;
|
158
|
+
background: #151515;
|
159
|
+
color: #eee;
|
160
|
+
margin: .5em 2em .5em 3em;
|
161
|
+
padding: .5em;
|
162
|
+
text-align: left;
|
163
|
+
font-family: monospace;
|
164
|
+
-moz-border-radius: .5em;
|
165
|
+
-webkit-border-radius: .5em;
|
166
|
+
border-radius: .5em;
|
167
|
+
|
168
|
+
}
|
169
|
+
|
170
|
+
span.placeholder {
|
171
|
+
font-style: italic;
|
172
|
+
}
|
173
|
+
|
174
|
+
span.placeholder:before {
|
175
|
+
content: "<";
|
176
|
+
}
|
177
|
+
|
178
|
+
span.placeholder:after {
|
179
|
+
content: ">";
|
180
|
+
}
|
181
|
+
|
182
|
+
.command-box span.placeholder {
|
183
|
+
font-style: normal;
|
184
|
+
color: #cc2;
|
185
|
+
}
|
186
|
+
|
187
|
+
.source-code-box {
|
188
|
+
border: 1px dotted #888;
|
189
|
+
background: #151515;
|
190
|
+
color: #eee;
|
191
|
+
margin: .5em 2em .5em 3em;
|
192
|
+
padding: .5em;
|
193
|
+
text-align: left;
|
194
|
+
font-family: monospace;
|
195
|
+
-moz-border-radius: .5em;
|
196
|
+
-webkit-border-radius: .5em;
|
197
|
+
border-radius: .5em;
|
198
|
+
}
|
199
|
+
|
200
|
+
.output-box {
|
201
|
+
border: 1px dotted #888;
|
202
|
+
background: #151515;
|
203
|
+
color: #eee;
|
204
|
+
margin: .5em 2em .5em 3em;
|
205
|
+
padding: .5em;
|
206
|
+
text-align: left;
|
207
|
+
font-family: monospace;
|
208
|
+
}
|
209
|
+
|
210
|
+
.sample-box {
|
211
|
+
border: 1px dotted #444;
|
212
|
+
margin: .5em 2em .5em 3em;
|
213
|
+
padding: .5em;
|
214
|
+
text-align: left;
|
215
|
+
}
|
216
|
+
|
217
|
+
/*
|
218
|
+
* Global styles for PH Web
|
219
|
+
*/
|
220
|
+
|
221
|
+
/*
|
222
|
+
* Banner and Main navigation menu
|
223
|
+
*/
|
224
|
+
|
225
|
+
div.banner {
|
226
|
+
margin: 0;
|
227
|
+
padding: 0;
|
228
|
+
float: left;
|
229
|
+
width: 100%;
|
230
|
+
font-size: 110%;
|
231
|
+
line-height: normal;
|
232
|
+
background: #5089da url( Main-Menu-Background-2.jpg ) repeat-y bottom left;
|
233
|
+
border-bottom: thin #666 solid;
|
234
|
+
}
|
235
|
+
|
236
|
+
div.banner div.signature span.by {
|
237
|
+
font: italic .7em Didot, serif;
|
238
|
+
padding-right: .6em;
|
239
|
+
text-shadow: .2em .2em .2em #222;
|
240
|
+
}
|
241
|
+
|
242
|
+
div.banner div.signature {
|
243
|
+
float: right;
|
244
|
+
color: gainsboro;
|
245
|
+
font: 1.1em Didot, serif;
|
246
|
+
margin: 0;
|
247
|
+
padding: 60px .1em 0 0;
|
248
|
+
vertical-align: baseline;
|
249
|
+
}
|
250
|
+
|
251
|
+
img#banner-logo {
|
252
|
+
float: left;
|
253
|
+
margin: .3em 6em .1em 1em;
|
254
|
+
border: 0;
|
255
|
+
}
|
256
|
+
|
257
|
+
|
258
|
+
div.banner a#feed_link img {
|
259
|
+
vertical-align: middle;
|
260
|
+
border: 0;
|
261
|
+
float: right;
|
262
|
+
margin: .5em 1em;
|
263
|
+
}
|
264
|
+
|
265
|
+
div.banner a#contact_me_link img {
|
266
|
+
vertical-align: middle;
|
267
|
+
border: 0;
|
268
|
+
float: right;
|
269
|
+
margin: .5em 1em;
|
270
|
+
}
|
271
|
+
|
272
|
+
ul.section-menu {
|
273
|
+
float: left;
|
274
|
+
margin: 0 auto;
|
275
|
+
padding: 0;
|
276
|
+
width: 40em;
|
277
|
+
list-style: none;
|
278
|
+
}
|
279
|
+
|
280
|
+
ul.section-menu li {
|
281
|
+
display:block;
|
282
|
+
float: left;
|
283
|
+
margin: .8em 1px .5em 1px;
|
284
|
+
padding: 1em 0;
|
285
|
+
background: transparent url( 'Button Gradient.png' ) repeat-x center;
|
286
|
+
text-shadow: .1em .1em .2em #444;
|
287
|
+
}
|
288
|
+
|
289
|
+
|
290
|
+
ul.section-menu li a:visited {
|
291
|
+
color: gainsboro;
|
292
|
+
}
|
293
|
+
|
294
|
+
ul.section-menu li a {
|
295
|
+
padding: 0 1em;
|
296
|
+
margin: 0;
|
297
|
+
font: bold .9em Lucida Grande, sans-serif;
|
298
|
+
text-decoration: none;
|
299
|
+
color: gainsboro;
|
300
|
+
}
|
301
|
+
|
302
|
+
ul.section-menu li.first a {
|
303
|
+
padding-left: .6em;
|
304
|
+
}
|
305
|
+
|
306
|
+
ul.section-menu li.last a {
|
307
|
+
padding-left: .6em;
|
308
|
+
}
|
309
|
+
|
310
|
+
ul.section-menu li a:hover {
|
311
|
+
color: white;
|
312
|
+
}
|
313
|
+
|
314
|
+
ul.section-menu li#current a {
|
315
|
+
color: #ff8;
|
316
|
+
}
|
317
|
+
|
318
|
+
div.content {
|
319
|
+
float: left;
|
320
|
+
background: url(Shore.jpg) no-repeat left top;
|
321
|
+
width: 100%;
|
322
|
+
padding: 0;
|
323
|
+
padding-top: 1.3em;
|
324
|
+
padding-bottom: 1.3em;
|
325
|
+
text-align: left;
|
326
|
+
clear: both;
|
327
|
+
margin: 0;
|
328
|
+
}
|
329
|
+
|
330
|
+
|
331
|
+
p.Cartouche {
|
332
|
+
float: right;
|
333
|
+
width: 15em;
|
334
|
+
margin: 0 2em 2em 3em;
|
335
|
+
background: #5089da;
|
336
|
+
padding: 1em;
|
337
|
+
text-align: center;
|
338
|
+
color: white;
|
339
|
+
font-weight: bold;
|
340
|
+
border: 0;
|
341
|
+
text-indent: 0;
|
342
|
+
|
343
|
+
-moz-border-radius: .5em;
|
344
|
+
-webkit-border-radius: .5em;
|
345
|
+
border-radius: .5em;
|
346
|
+
-webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5)
|
347
|
+
}
|
348
|
+
|
349
|
+
p.Cartouche a img {
|
350
|
+
border: 0;
|
351
|
+
}
|
352
|
+
|
353
|
+
.Copyright {
|
354
|
+
clear: both;
|
355
|
+
text-align: center;
|
356
|
+
font: italic 1em Lucida Grande, sans-serif;
|
357
|
+
color: #444;
|
358
|
+
margin-bottom: .2em;
|
359
|
+
}
|
360
|
+
|
361
|
+
.License {
|
362
|
+
margin-top: 0;
|
363
|
+
font: italic 1em Lucida Grande, sans-serif;
|
364
|
+
color: #444;
|
365
|
+
}
|
366
|
+
|
367
|
+
a.discussion_link {
|
368
|
+
text-decoration: none;
|
369
|
+
}
|
370
|
+
|
371
|
+
a.comment_counter {
|
372
|
+
color: #5089da;
|
373
|
+
padding: 0 1.5em;
|
374
|
+
}
|
375
|
+
|
376
|
+
h2.document_reference a {
|
377
|
+
text-decoration: none;
|
378
|
+
}
|
379
|
+
|
380
|
+
span.tag_list {
|
381
|
+
padding-left: 4em;
|
382
|
+
font-weight: normal;
|
383
|
+
}
|
384
|
+
|
385
|
+
span.tag_list img {
|
386
|
+
vertical-align: middle;
|
387
|
+
}
|
388
|
+
|
389
|
+
span.tag_list:before {
|
390
|
+
content: '[';
|
391
|
+
}
|
392
|
+
|
393
|
+
span.tag_list:after {
|
394
|
+
content: ']';
|
395
|
+
}
|
396
|
+
|
397
|
+
p.read_more, p.read_more a {
|
398
|
+
font-variant : small-caps;
|
399
|
+
font-weight: bold;
|
400
|
+
color: #5089da;
|
401
|
+
}
|
402
|
+
|
403
|
+
h2 span.post_date {
|
404
|
+
padding-right: 1em;
|
405
|
+
color: #5089da;
|
406
|
+
}
|
407
|
+
|
408
|
+
div#contact_form {
|
409
|
+
margin: 2em;
|
410
|
+
}
|
411
|
+
|
412
|
+
div#contact_form label {
|
413
|
+
margin-bottom: 100px;
|
414
|
+
padding: 5em 1em 5em 0;
|
415
|
+
}
|
416
|
+
|
417
|
+
div#contact_form textarea {
|
418
|
+
margin-top: 1.5em;
|
419
|
+
width: 50em;
|
420
|
+
}
|
421
|
+
|
422
|
+
div.errorExplanation {
|
423
|
+
background: #fbb;
|
424
|
+
color: red;
|
425
|
+
padding: 1em;
|
426
|
+
margin: 1em;
|
427
|
+
-moz-border-radius: 1em;
|
428
|
+
-webkit-border-radius: 1em;
|
429
|
+
border-radius: 1em;
|
430
|
+
}
|
431
|
+
|
432
|
+
div.errorExplanation h2 {
|
433
|
+
font-size: 1em;
|
434
|
+
border: 0;
|
435
|
+
color: red;
|
436
|
+
}
|
437
|
+
|
438
|
+
/*
|
439
|
+
* Round box
|
440
|
+
*/
|
441
|
+
table.box {
|
442
|
+
table-layout: fixed;
|
443
|
+
border-spacing: 0;
|
444
|
+
border: none;
|
445
|
+
}
|
446
|
+
|
447
|
+
table.box tr, table.box tr td {
|
448
|
+
padding: 0;
|
449
|
+
margin: 0;
|
450
|
+
border: none;
|
451
|
+
}
|
452
|
+
|
453
|
+
table.box tr.top, table.box tr.bottom {
|
454
|
+
height: 30px;
|
455
|
+
}
|
456
|
+
|
457
|
+
table.box tr.bottom td { /* Fix for Safari who does not pick up height from the <tr> rule. */
|
458
|
+
height: 30px;
|
459
|
+
}
|
460
|
+
|
461
|
+
table.box tr td.left, table.box tr td.right {
|
462
|
+
width: 30px;
|
463
|
+
}
|
464
|
+
|
465
|
+
table.box tr.top td.left {
|
466
|
+
background: url('Blue Box Top Left.png') no-repeat top left;
|
467
|
+
}
|
468
|
+
|
469
|
+
table.box tr.top td.center {
|
470
|
+
background: url('Blue Box Top.png') repeat-x top;
|
471
|
+
}
|
472
|
+
|
473
|
+
table.box tr.top td.right {
|
474
|
+
background: url('Blue Box Top Right.png') no-repeat top right;
|
475
|
+
}
|
476
|
+
|
477
|
+
table.box tr.middle td.left {
|
478
|
+
background: url('Blue Box Left.png') repeat-y left;
|
479
|
+
}
|
480
|
+
|
481
|
+
table.box tr.middle td.center {
|
482
|
+
background: url('Blue Box Center.png') repeat;
|
483
|
+
padding: 0px;
|
484
|
+
}
|
485
|
+
|
486
|
+
table.box tr.middle td.right {
|
487
|
+
background: url('Blue Box Right.png') repeat-y right;
|
488
|
+
}
|
489
|
+
|
490
|
+
table.box tr.bottom td.left {
|
491
|
+
background: url('Blue Box Bottom Left.png') no-repeat bottom left;
|
492
|
+
}
|
493
|
+
|
494
|
+
table.box tr.bottom td.center {
|
495
|
+
background: url('Blue Box Bottom.png') repeat-x bottom;
|
496
|
+
}
|
497
|
+
|
498
|
+
table.box tr.bottom td.right {
|
499
|
+
background: url('Blue Box Bottom Right.png') no-repeat bottom right;
|
500
|
+
}
|
501
|
+
|
502
|
+
|
503
|
+
/*
|
504
|
+
* Styles for PH articles.
|
505
|
+
*/
|
506
|
+
|
507
|
+
div.content {
|
508
|
+
float: left;
|
509
|
+
width: 90%;
|
510
|
+
padding: 0 3em;
|
511
|
+
}
|
512
|
+
|
513
|
+
div.content * {
|
514
|
+
text-align: left;
|
515
|
+
}
|
516
|
+
|
517
|
+
div.content h1 {
|
518
|
+
padding: 1em 2em 1em 2em;
|
519
|
+
text-align: center;
|
520
|
+
font-size: 1.7em;
|
521
|
+
text-shadow: .1em .1em .2em #666;
|
522
|
+
}
|
523
|
+
|
524
|
+
div.content table.reference-table {
|
525
|
+
margin-left: 4em;
|
526
|
+
}
|
527
|
+
div.content table.reference-table tr td, div.content table.reference-table tr th {
|
528
|
+
padding: .3em 1em;
|
529
|
+
text-align: left;
|
530
|
+
}
|
531
|
+
|
532
|
+
div.Header {
|
533
|
+
margin: .5em 3em 1em 3em;
|
534
|
+
padding: .5em 1em .5em 1em;
|
535
|
+
background: #999;
|
536
|
+
color: #fff;
|
537
|
+
border: thin solid #888;
|
538
|
+
text-align: center;
|
539
|
+
}
|
540
|
+
|
541
|
+
div.Author {
|
542
|
+
padding: 0;
|
543
|
+
margin: 0;
|
544
|
+
color: #fff;
|
545
|
+
font: italic 1em serif;
|
546
|
+
}
|
547
|
+
|
548
|
+
div.Author:before {
|
549
|
+
content: "By "
|
550
|
+
}
|
551
|
+
|
552
|
+
div.LastUpdate:before {
|
553
|
+
content: "Last significant update: "
|
554
|
+
}
|
555
|
+
|
556
|
+
p.LastUpdate {
|
557
|
+
padding: 0;
|
558
|
+
margin: -.5em 0 1.2em 0;
|
559
|
+
color: #222;
|
560
|
+
font: italic 1em sans-serif;
|
561
|
+
text-align: center;
|
562
|
+
}
|
563
|
+
|
564
|
+
div.Abstract {
|
565
|
+
margin: .5em 6em;
|
566
|
+
background: #5089da;
|
567
|
+
color: white;
|
568
|
+
text-align: justify;
|
569
|
+
padding: 1.2em 1.2em;
|
570
|
+
|
571
|
+
-moz-border-radius: 1em;
|
572
|
+
-webkit-border-radius: 1em;
|
573
|
+
border-radius: 1em;
|
574
|
+
-webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5)
|
575
|
+
}
|
576
|
+
|
577
|
+
div.Abstract p {
|
578
|
+
margin: 1em 0 0 0;
|
579
|
+
padding: 0;
|
580
|
+
}
|
581
|
+
|
582
|
+
div.Abstract p.first {
|
583
|
+
margin-top: 0;
|
584
|
+
}
|
585
|
+
|
586
|
+
div.Audience:before {
|
587
|
+
content: "Audience: ";
|
588
|
+
}
|
589
|
+
|
590
|
+
div.Audience {
|
591
|
+
margin: .5em 2em;
|
592
|
+
color: #444;
|
593
|
+
font: italic 1em Verdana sans-serif;
|
594
|
+
text-align: justify;
|
595
|
+
}
|
596
|
+
|
597
|
+
|
598
|
+
h2 {
|
599
|
+
margin-top: 1.5em;
|
600
|
+
margin-left: 0em;
|
601
|
+
font-weight: bold;
|
602
|
+
font-size: 1.2em;
|
603
|
+
border-bottom: medium #5089da solid;
|
604
|
+
text-shadow: .1em .1em .2em #666;
|
605
|
+
}
|
606
|
+
|
607
|
+
h3 {
|
608
|
+
font-size: 1.1em;
|
609
|
+
margin-top: 1em;
|
610
|
+
margin-left: 1em;
|
611
|
+
margin-right: auto;
|
612
|
+
color: #5089da;
|
613
|
+
border-bottom: thin solid #929292;
|
614
|
+
text-shadow: .1em .1em .2em #bbb;
|
615
|
+
}
|
616
|
+
|
617
|
+
h4 {
|
618
|
+
font-size: 1em;
|
619
|
+
font-weight: bold;
|
620
|
+
margin-left: 2em;
|
621
|
+
margin-right: auto;
|
622
|
+
color: #000;
|
623
|
+
border-bottom: thin #5089da solid;
|
624
|
+
}
|
625
|
+
|
626
|
+
div#what-s-next {
|
627
|
+
margin: .5em 0em;
|
628
|
+
background: #5089da;
|
629
|
+
color: white;
|
630
|
+
text-align: justify;
|
631
|
+
padding: 1.5em 1em 1em 1em;
|
632
|
+
|
633
|
+
-moz-border-radius: 1em;
|
634
|
+
-webkit-border-radius: 1em;
|
635
|
+
border-radius: 1em;
|
636
|
+
-webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5)
|
637
|
+
}
|
638
|
+
|
639
|
+
div#what-s-next h2 {
|
640
|
+
color: white;
|
641
|
+
padding-top: 0em;
|
642
|
+
padding: 0;
|
643
|
+
margin: 0;
|
644
|
+
}
|
645
|
+
|
646
|
+
div#what-s-next h3 {
|
647
|
+
color: #060c14;
|
648
|
+
border-color: #305282;
|
649
|
+
}
|
650
|
+
|
651
|
+
div.side-note {
|
652
|
+
float: right;
|
653
|
+
width: 23em;
|
654
|
+
margin: 0 0 1.2em 2em;
|
655
|
+
padding: 0;
|
656
|
+
|
657
|
+
background: lightyellow;
|
658
|
+
border: thin solid #a8a86d;
|
659
|
+
}
|
660
|
+
|
661
|
+
div.side-note .header {
|
662
|
+
margin: .25em 1em;
|
663
|
+
padding: 0 0 .3em 0;
|
664
|
+
|
665
|
+
color: black;
|
666
|
+
border-bottom: solid medium #5089da;
|
667
|
+
}
|
668
|
+
|
669
|
+
div.side-note p {
|
670
|
+
margin: .5em 1em;
|
671
|
+
}
|
672
|
+
|
673
|
+
div.side-note .header p {
|
674
|
+
text-align: center;
|
675
|
+
font-weight: bold;
|
676
|
+
margin: 0;
|
677
|
+
padding: 0;
|
678
|
+
}
|
679
|
+
|
680
|
+
h2, h3 {
|
681
|
+
clear: both;
|
682
|
+
}
|
683
|
+
|
684
|
+
div.maruku_toc ul {
|
685
|
+
margin: 0 2em;
|
686
|
+
padding: 0;
|
687
|
+
}
|
688
|
+
|
689
|
+
div.maruku_toc ul li ul {
|
690
|
+
margin: 0 2em;
|
691
|
+
padding: 0;
|
692
|
+
}
|
693
|
+
|
694
|
+
div.content li {
|
695
|
+
margin-top: 1em;
|
696
|
+
margin-bottom: 1em;
|
697
|
+
}
|
698
|
+
|
699
|
+
blockquote {
|
700
|
+
color: #333;
|
701
|
+
font-style: Italic;
|
702
|
+
}
|
703
|
+
|
704
|
+
.ruby .normal {}
|
705
|
+
.ruby .comment { color: #005; font-style: italic; }
|
706
|
+
.ruby .keyword { color: #A00; font-weight: bold; }
|
707
|
+
.ruby .method { color: #077; }
|
708
|
+
.ruby .class { color: #074; }
|
709
|
+
.ruby .module { color: #050; }
|
710
|
+
.ruby .punct { color: #447; font-weight: bold; }
|
711
|
+
.ruby .symbol { color: #099; }
|
712
|
+
.ruby .string { color: #944; background: #FFE; }
|
713
|
+
.ruby .char { color: #F07; }
|
714
|
+
.ruby .ident { color: #004; }
|
715
|
+
.ruby .constant { color: #07F; }
|
716
|
+
.ruby .regex { color: #B66; background: #FEF; }
|
717
|
+
.ruby .number { color: #F99; }
|
718
|
+
.ruby .attribute { color: #7BB; }
|
719
|
+
.ruby .global { color: #7FB; }
|
720
|
+
.ruby .expr { color: #227; }
|
721
|
+
.ruby .escape { color: #277; }
|