SlimTest 4.6.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -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
+
@@ -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; }