whyvalidationssuckin96 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/.document +5 -0
  2. data/.gitignore +22 -0
  3. data/LICENSE +20 -0
  4. data/README.md +121 -0
  5. data/Rakefile +45 -0
  6. data/VERSION +1 -0
  7. data/doc/ActiveRecord/RecordInvalid.html +258 -0
  8. data/doc/ActiveRecord.html +93 -0
  9. data/doc/FalseClass.html +87 -0
  10. data/doc/NilClass.html +87 -0
  11. data/doc/Numeric.html +87 -0
  12. data/doc/Object.html +79 -0
  13. data/doc/String.html +87 -0
  14. data/doc/TrueClass.html +87 -0
  15. data/doc/WhyValidationsSuckIn96/ActiveRecord/InstanceMethods.html +156 -0
  16. data/doc/WhyValidationsSuckIn96/ActiveRecord.html +192 -0
  17. data/doc/WhyValidationsSuckIn96/AttributeBasedValidation.html +464 -0
  18. data/doc/WhyValidationsSuckIn96/SkippableValidation.html +194 -0
  19. data/doc/WhyValidationsSuckIn96/ValidatesAcceptance.html +254 -0
  20. data/doc/WhyValidationsSuckIn96/ValidatesAssociated.html +250 -0
  21. data/doc/WhyValidationsSuckIn96/ValidatesConfirmation.html +251 -0
  22. data/doc/WhyValidationsSuckIn96/ValidatesExclusion.html +388 -0
  23. data/doc/WhyValidationsSuckIn96/ValidatesFormat.html +387 -0
  24. data/doc/WhyValidationsSuckIn96/ValidatesInclusion.html +388 -0
  25. data/doc/WhyValidationsSuckIn96/ValidatesLength.html +469 -0
  26. data/doc/WhyValidationsSuckIn96/ValidatesNumericality.html +267 -0
  27. data/doc/WhyValidationsSuckIn96/ValidatesPresence.html +244 -0
  28. data/doc/WhyValidationsSuckIn96/ValidatesUniqueness.html +289 -0
  29. data/doc/WhyValidationsSuckIn96/Validation.html +934 -0
  30. data/doc/WhyValidationsSuckIn96/ValidationBuilder.html +391 -0
  31. data/doc/WhyValidationsSuckIn96/ValidationSupport/ClassMethods.html +249 -0
  32. data/doc/WhyValidationsSuckIn96/ValidationSupport/InstanceMethods.html +484 -0
  33. data/doc/WhyValidationsSuckIn96/ValidationSupport.html +168 -0
  34. data/doc/WhyValidationsSuckIn96.html +97 -0
  35. data/doc/_index.html +346 -0
  36. data/doc/class_list.html +293 -0
  37. data/doc/css/common.css +1 -0
  38. data/doc/css/full_list.css +23 -0
  39. data/doc/css/style.css +263 -0
  40. data/doc/file.README.html +173 -0
  41. data/doc/file_list.html +29 -0
  42. data/doc/index.html +173 -0
  43. data/doc/js/app.js +91 -0
  44. data/doc/js/full_list.js +39 -0
  45. data/doc/js/jquery.js +19 -0
  46. data/doc/method_list.html +462 -0
  47. data/doc/top-level-namespace.html +81 -0
  48. data/lib/whyvalidationssuckin96/attribute_based_validation.rb +46 -0
  49. data/lib/whyvalidationssuckin96/constants.rb +3 -0
  50. data/lib/whyvalidationssuckin96/ext/blank.rb +47 -0
  51. data/lib/whyvalidationssuckin96/macros/validates_acceptance.rb +36 -0
  52. data/lib/whyvalidationssuckin96/macros/validates_associated.rb +33 -0
  53. data/lib/whyvalidationssuckin96/macros/validates_confirmation.rb +40 -0
  54. data/lib/whyvalidationssuckin96/macros/validates_exclusion.rb +38 -0
  55. data/lib/whyvalidationssuckin96/macros/validates_format.rb +38 -0
  56. data/lib/whyvalidationssuckin96/macros/validates_inclusion.rb +38 -0
  57. data/lib/whyvalidationssuckin96/macros/validates_length.rb +98 -0
  58. data/lib/whyvalidationssuckin96/macros/validates_numericality.rb +56 -0
  59. data/lib/whyvalidationssuckin96/macros/validates_presence.rb +30 -0
  60. data/lib/whyvalidationssuckin96/macros.rb +9 -0
  61. data/lib/whyvalidationssuckin96/rails/active_record.rb +94 -0
  62. data/lib/whyvalidationssuckin96/rails/macros/validates_uniqueness.rb +87 -0
  63. data/lib/whyvalidationssuckin96/rails/macros.rb +1 -0
  64. data/lib/whyvalidationssuckin96/skippable_validation.rb +59 -0
  65. data/lib/whyvalidationssuckin96/validation.rb +88 -0
  66. data/lib/whyvalidationssuckin96/validation_builder.rb +56 -0
  67. data/lib/whyvalidationssuckin96/validation_support.rb +74 -0
  68. data/lib/whyvalidationssuckin96.rb +4 -0
  69. data/test/attribute_based_validation_test.rb +58 -0
  70. data/test/macros/validates_acceptance_test.rb +64 -0
  71. data/test/macros/validates_associated_test.rb +60 -0
  72. data/test/macros/validates_confirmation_test.rb +63 -0
  73. data/test/macros/validates_exclusion_test.rb +37 -0
  74. data/test/macros/validates_format_test.rb +43 -0
  75. data/test/macros/validates_inclusion_test.rb +37 -0
  76. data/test/macros/validates_length_test.rb +179 -0
  77. data/test/macros/validates_numericality_test.rb +129 -0
  78. data/test/macros/validates_presence_test.rb +31 -0
  79. data/test/rails/active_record_test.rb +187 -0
  80. data/test/rails/active_record_test_helper.rb +90 -0
  81. data/test/rails/macros/validates_uniqueness_test.rb +153 -0
  82. data/test/skippable_validation_test.rb +102 -0
  83. data/test/teststrap.rb +4 -0
  84. data/test/validation_builder_test.rb +62 -0
  85. data/test/validation_support_test.rb +209 -0
  86. data/test/validation_test.rb +101 -0
  87. data/whyvalidationssuckin96.gemspec +153 -0
  88. metadata +189 -0
@@ -0,0 +1,293 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=UTF-8" />
6
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
7
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
8
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
9
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
10
+ <base target="_parent" />
11
+ </head>
12
+ <body>
13
+ <h1 id="full_list_header">Namespace List</h1>
14
+ <div id="search">Search: <input type="text" /></div>
15
+ <div class="clear"></div>
16
+ <ul id="full_list">
17
+
18
+
19
+ <li class="r1 ">
20
+
21
+ <a href="top-level-namespace.html">Top Level Namespace</a>
22
+
23
+
24
+ </li>
25
+
26
+ <li class="r2 ">
27
+
28
+ <a href="ActiveRecord.html" title="ActiveRecord">ActiveRecord</a>
29
+
30
+
31
+
32
+ </li>
33
+
34
+ <li class="r1 ">
35
+
36
+ <a href="WhyValidationsSuckIn96/ActiveRecord.html" title="ActiveRecord">ActiveRecord</a>
37
+
38
+ <small>(WhyValidationsSuckIn96)</small>
39
+
40
+
41
+
42
+ </li>
43
+
44
+ <li class="r2 ">
45
+
46
+ <a href="WhyValidationsSuckIn96/AttributeBasedValidation.html" title="AttributeBasedValidation">AttributeBasedValidation</a>
47
+
48
+ <small>(WhyValidationsSuckIn96)</small>
49
+
50
+
51
+
52
+ </li>
53
+
54
+ <li class="r1 ">
55
+
56
+ <a href="WhyValidationsSuckIn96/ValidationSupport/ClassMethods.html" title="ClassMethods">ClassMethods</a>
57
+
58
+ <small>(WhyValidationsSuckIn96::ValidationSupport)</small>
59
+
60
+
61
+
62
+ </li>
63
+
64
+ <li class="r2 ">
65
+
66
+ <a href="FalseClass.html" title="FalseClass">FalseClass</a>
67
+
68
+
69
+
70
+ </li>
71
+
72
+ <li class="r1 ">
73
+
74
+ <a href="WhyValidationsSuckIn96/ActiveRecord/InstanceMethods.html" title="InstanceMethods">InstanceMethods</a>
75
+
76
+ <small>(WhyValidationsSuckIn96::ActiveRecord)</small>
77
+
78
+
79
+
80
+ </li>
81
+
82
+ <li class="r2 ">
83
+
84
+ <a href="WhyValidationsSuckIn96/ValidationSupport/InstanceMethods.html" title="InstanceMethods">InstanceMethods</a>
85
+
86
+ <small>(WhyValidationsSuckIn96::ValidationSupport)</small>
87
+
88
+
89
+
90
+ </li>
91
+
92
+ <li class="r1 ">
93
+
94
+ <a href="NilClass.html" title="NilClass">NilClass</a>
95
+
96
+
97
+
98
+ </li>
99
+
100
+ <li class="r2 ">
101
+
102
+ <a href="Numeric.html" title="Numeric">Numeric</a>
103
+
104
+
105
+
106
+ </li>
107
+
108
+ <li class="r1 ">
109
+
110
+ <a href="Object.html" title="Object">Object</a>
111
+
112
+
113
+
114
+ </li>
115
+
116
+ <li class="r2 ">
117
+
118
+ <a href="ActiveRecord/RecordInvalid.html" title="RecordInvalid">RecordInvalid</a>
119
+
120
+ <small>(ActiveRecord)</small>
121
+
122
+
123
+
124
+ </li>
125
+
126
+ <li class="r1 ">
127
+
128
+ <a href="WhyValidationsSuckIn96/SkippableValidation.html" title="SkippableValidation">SkippableValidation</a>
129
+
130
+ <small>(WhyValidationsSuckIn96)</small>
131
+
132
+
133
+
134
+ </li>
135
+
136
+ <li class="r2 ">
137
+
138
+ <a href="String.html" title="String">String</a>
139
+
140
+
141
+
142
+ </li>
143
+
144
+ <li class="r1 ">
145
+
146
+ <a href="TrueClass.html" title="TrueClass">TrueClass</a>
147
+
148
+
149
+
150
+ </li>
151
+
152
+ <li class="r2 ">
153
+
154
+ <a href="WhyValidationsSuckIn96/ValidatesAcceptance.html" title="ValidatesAcceptance">ValidatesAcceptance</a>
155
+
156
+ <small>(WhyValidationsSuckIn96)</small>
157
+
158
+
159
+
160
+ </li>
161
+
162
+ <li class="r1 ">
163
+
164
+ <a href="WhyValidationsSuckIn96/ValidatesAssociated.html" title="ValidatesAssociated">ValidatesAssociated</a>
165
+
166
+ <small>(WhyValidationsSuckIn96)</small>
167
+
168
+
169
+
170
+ </li>
171
+
172
+ <li class="r2 ">
173
+
174
+ <a href="WhyValidationsSuckIn96/ValidatesConfirmation.html" title="ValidatesConfirmation">ValidatesConfirmation</a>
175
+
176
+ <small>(WhyValidationsSuckIn96)</small>
177
+
178
+
179
+
180
+ </li>
181
+
182
+ <li class="r1 ">
183
+
184
+ <a href="WhyValidationsSuckIn96/ValidatesExclusion.html" title="ValidatesExclusion">ValidatesExclusion</a>
185
+
186
+ <small>(WhyValidationsSuckIn96)</small>
187
+
188
+
189
+
190
+ </li>
191
+
192
+ <li class="r2 ">
193
+
194
+ <a href="WhyValidationsSuckIn96/ValidatesFormat.html" title="ValidatesFormat">ValidatesFormat</a>
195
+
196
+ <small>(WhyValidationsSuckIn96)</small>
197
+
198
+
199
+
200
+ </li>
201
+
202
+ <li class="r1 ">
203
+
204
+ <a href="WhyValidationsSuckIn96/ValidatesInclusion.html" title="ValidatesInclusion">ValidatesInclusion</a>
205
+
206
+ <small>(WhyValidationsSuckIn96)</small>
207
+
208
+
209
+
210
+ </li>
211
+
212
+ <li class="r2 ">
213
+
214
+ <a href="WhyValidationsSuckIn96/ValidatesLength.html" title="ValidatesLength">ValidatesLength</a>
215
+
216
+ <small>(WhyValidationsSuckIn96)</small>
217
+
218
+
219
+
220
+ </li>
221
+
222
+ <li class="r1 ">
223
+
224
+ <a href="WhyValidationsSuckIn96/ValidatesNumericality.html" title="ValidatesNumericality">ValidatesNumericality</a>
225
+
226
+ <small>(WhyValidationsSuckIn96)</small>
227
+
228
+
229
+
230
+ </li>
231
+
232
+ <li class="r2 ">
233
+
234
+ <a href="WhyValidationsSuckIn96/ValidatesPresence.html" title="ValidatesPresence">ValidatesPresence</a>
235
+
236
+ <small>(WhyValidationsSuckIn96)</small>
237
+
238
+
239
+
240
+ </li>
241
+
242
+ <li class="r1 ">
243
+
244
+ <a href="WhyValidationsSuckIn96/ValidatesUniqueness.html" title="ValidatesUniqueness">ValidatesUniqueness</a>
245
+
246
+ <small>(WhyValidationsSuckIn96)</small>
247
+
248
+
249
+
250
+ </li>
251
+
252
+ <li class="r2 ">
253
+
254
+ <a href="WhyValidationsSuckIn96/Validation.html" title="Validation">Validation</a>
255
+
256
+ <small>(WhyValidationsSuckIn96)</small>
257
+
258
+
259
+
260
+ </li>
261
+
262
+ <li class="r1 ">
263
+
264
+ <a href="WhyValidationsSuckIn96/ValidationBuilder.html" title="ValidationBuilder">ValidationBuilder</a>
265
+
266
+ <small>(WhyValidationsSuckIn96)</small>
267
+
268
+
269
+
270
+ </li>
271
+
272
+ <li class="r2 ">
273
+
274
+ <a href="WhyValidationsSuckIn96/ValidationSupport.html" title="ValidationSupport">ValidationSupport</a>
275
+
276
+ <small>(WhyValidationsSuckIn96)</small>
277
+
278
+
279
+
280
+ </li>
281
+
282
+ <li class="r1 ">
283
+
284
+ <a href="WhyValidationsSuckIn96.html" title="WhyValidationsSuckIn96">WhyValidationsSuckIn96</a>
285
+
286
+
287
+
288
+ </li>
289
+
290
+ </ul>
291
+ </body>
292
+ </html>
293
+
@@ -0,0 +1 @@
1
+ /* Override this file with custom rules */
@@ -0,0 +1,23 @@
1
+ body {
2
+ margin: 0;
3
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
4
+ font-size: 13px;
5
+ height: 101%;
6
+ }
7
+ html { overflow-y: scroll; }
8
+
9
+ h1 { padding: 0; margin: 5px; margin-top: 12px; margin-left: 10px; margin-bottom: 0; font-size: 1.4em; }
10
+ .clear { clear: both; }
11
+ #search { position: absolute; right: 5px; top: 9px; }
12
+ #full_list { padding: 0; list-style: none; margin-left: 0; }
13
+ #full_list li { padding: 7px 15px; font-size: 1.1em; }
14
+ #noresults { display: none; padding: 7px 15px; }
15
+ li { color: #555; }
16
+ li.deprecated { text-decoration: line-through; font-style: italic; }
17
+ li.r1 { background: #f0f0f0; border: 1px dotted #f0f0f0; border-left-width: 0; border-right-width: 0; }
18
+ li.r2 { background: #fafafa; border: 1px dotted #fafafa; border-left-width: 0; border-right-width: 0; }
19
+ li:hover { background: #ffffa5; cursor: pointer; border: 1px dotted #ddddc4; border-left-width: 0; border-right-width: 0; }
20
+ li:hover * { position: relative; left: -3px; }
21
+ a:link, a:visited { text-decoration: none; color: #05a; }
22
+ a:hover { background: #ffffa5; }
23
+ #search input { border: 1px solid #bbb; -moz-border-radius: 3px; -webkit-border-radius: 3px; }
data/doc/css/style.css ADDED
@@ -0,0 +1,263 @@
1
+ body {
2
+ padding: 0 20px;
3
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
4
+ font-size: 13px;
5
+ }
6
+ h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
7
+ h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
8
+ h1.title { margin-bottom: 10px; }
9
+ h1.alphaindex { margin-top: 0; font-size: 22px; }
10
+ h2 {
11
+ padding: 0;
12
+ padding-bottom: 3px;
13
+ border-bottom: 1px #aaa solid;
14
+ font-size: 1.4em;
15
+ margin: 1.8em 0 0.5em;
16
+ }
17
+ .clear { clear: both; }
18
+ .docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
19
+ .docstring h1 { font-size: 1.2em; }
20
+ .docstring h2 { font-size: 1.1em; }
21
+ .docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
22
+
23
+ .note {
24
+ color: #222;
25
+ -moz-border-radius: 3px; -webkit-border-radius: 3px;
26
+ background: #e3e4e3; border: 1px solid #d5d5d5; padding: 7px 10px;
27
+ }
28
+ .note.todo { background: #ffffc5; border-color: #ececaa; }
29
+ .note.returns_void { background: #efefef; }
30
+ .note.deprecated { background: #ffe5e5; border-color: #e9dada; }
31
+ .note.title { text-transform: lowercase; padding: 1px 5px; margin-left: 5px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; }
32
+ h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
33
+ .note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
34
+ .note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
35
+ .note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
36
+ .note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
37
+
38
+ h3.inherited {
39
+ font-style: italic;
40
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
41
+ font-weight: normal;
42
+ padding: 0;
43
+ margin: 0;
44
+ margin-top: 12px;
45
+ margin-bottom: 3px;
46
+ font-size: 13px;
47
+ }
48
+ p.inherited {
49
+ padding: 0;
50
+ margin: 0;
51
+ margin-left: 25px;
52
+ }
53
+
54
+ dl.box {
55
+ width: 520px;
56
+ font-size: 1em;
57
+ }
58
+ dl.box dt {
59
+ float: left;
60
+ display: block;
61
+ width: 100px;
62
+ margin: 0;
63
+ text-align: right;
64
+ font-weight: bold;
65
+ border: 1px solid #aaa;
66
+ border-width: 1px 0px 0px 1px;
67
+ padding: 6px 0;
68
+ padding-right: 10px;
69
+ }
70
+ dl.box dd {
71
+ float: left;
72
+ display: block;
73
+ width: 380px;
74
+ margin: 0;
75
+ padding: 6px 0;
76
+ padding-right: 20px;
77
+ border: 1px solid #aaa;
78
+ border-width: 1px 1px 0 0;
79
+ }
80
+ dl.box .last {
81
+ border-bottom: 1px solid #aaa;
82
+ }
83
+ dl.box .r1 { background: #eee; }
84
+
85
+ ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
86
+ #files { padding-left: 15px; font-size: 1.1em; }
87
+
88
+ #files { padding: 0; }
89
+ #files li { list-style: none; display: inline; padding: 7px 12px; line-height: 35px; }
90
+
91
+ dl.constants { margin-left: 40px; }
92
+ dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
93
+ dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
94
+
95
+ .summary_desc { margin-left: 32px; display: block; font-family: sans-serif; }
96
+ .summary_desc tt { font-size: 0.9em; }
97
+ dl.constants .summary_desc { font-size: 0.9em; font-weight: normal; }
98
+
99
+ .method_details { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
100
+ .method_details.first { border: 0; }
101
+ p.signature {
102
+ font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
103
+ padding: 6px 10px; margin-top: 18px;
104
+ background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
105
+ }
106
+ p.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
107
+ p.signature .overload { display: block; }
108
+ p.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
109
+ p.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
110
+ p.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
111
+
112
+ .tags h3 { font-size: 1em; margin-bottom: 0; }
113
+ .tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
114
+ .tags ul li { margin-bottom: 3px; }
115
+ .tags ul .name { font-family: monospace; font-weight: bold; }
116
+ .tags ul p.note { padding: 3px 6px; }
117
+ .tags { margin-bottom: 12px; }
118
+
119
+ .tags .examples h3 { margin-bottom: 10px; }
120
+ .tags .examples h4 { padding: 0; margin: 0; margin-left: 15px; font-weight: bold; font-size: 0.9em; }
121
+
122
+ .tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
123
+ .tags .overload .overload_item .signature {
124
+ padding: 2px 8px;
125
+ background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
126
+ }
127
+ .tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
128
+ .tags .overload .docstring { margin-top: 15px; }
129
+
130
+ .defines { display: none; }
131
+
132
+ #method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
133
+
134
+ .showSource { font-size: 0.9em; }
135
+ .showSource a:link, .showSource a:visited { text-decoration: none; color: #666; }
136
+
137
+ #content a:link, #content a:visited { text-decoration: none; color: #05a; }
138
+ #content a:hover { background: #ffffa5; }
139
+ .docstring { margin-right: 6em; }
140
+
141
+ ul.summary {
142
+ list-style: none;
143
+ font-family: monospace;
144
+ font-size: 1em;
145
+ line-height: 1.5em;
146
+ }
147
+ ul.summary a:link, ul.summary a:visited {
148
+ text-decoration: none; font-size: 1.1em;
149
+ }
150
+ ul.summary li { margin-bottom: 5px; }
151
+ .summary .summary_signature {
152
+ padding: 1px 10px;
153
+ background: #eaeaff; border: 1px solid #dfdfe5;
154
+ -moz-border-radius: 3px; -webkit-border-radius: 3px;
155
+ }
156
+ .summary_signature:hover { background: #eeeeff; cursor: pointer; }
157
+ #content .summary_signature:hover a:link,
158
+ #content .summary_signature:hover a:visited {
159
+ background: transparent;
160
+ color: #48f;
161
+ }
162
+
163
+ p.inherited a { font-family: monospace; font-size: 0.9em; }
164
+ p.inherited { word-spacing: 5px; font-size: 1.2em; }
165
+
166
+ p.children { font-size: 1.2em; }
167
+ p.children a { font-size: 0.9em; }
168
+ p.children strong { font-size: 0.8em; }
169
+ p.children strong.modules { padding-left: 5px; }
170
+
171
+ ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
172
+ ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
173
+ ul.fullTree li { text-align: center; }
174
+ ul.fullTree li.next:before { font-size: 1.2em; content: '\2B06'; color: #bbb; display: block; margin-top: 3px; }
175
+
176
+ #search { position: absolute; right: 14px; top: 0px; }
177
+ #search a:link, #search a:visited {
178
+ display: block; float: left; margin-right: 4px;
179
+ padding: 8px 10px; text-decoration: none; color: #05a; background: #eaeaff;
180
+ border: 1px solid #d8d8e5;
181
+ -moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
182
+ -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
183
+ }
184
+ #search a:hover { background: #eef; color: #06b; }
185
+ #search a.active {
186
+ background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457;
187
+ -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;
188
+ -webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px;
189
+ }
190
+ #search a.inactive { color: #999; }
191
+ .inheritanceTree, .toggleDefines { float: right; }
192
+
193
+ #menu { font-size: 1.3em; color: #bbb; top: -5px; position: relative; }
194
+ #menu .title, #menu a { font-size: 0.7em; }
195
+ #menu .title { color: #555; }
196
+ #menu a:link, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
197
+ #menu a:hover { color: #05a; }
198
+
199
+ #footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
200
+ #footer a:link, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
201
+ #footer a:hover { color: #05a; }
202
+
203
+ #listing ul.alpha { font-size: 1.1em; }
204
+ #listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
205
+ #listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
206
+ #listing ul.alpha ul { margin: 0; padding: 0; }
207
+ #listing ul small { color: #666; font-size: 0.7em; }
208
+
209
+ li.r1 { background: #f0f0f0; }
210
+ li.r2 { background: #fafafa; }
211
+
212
+ #search_frame {
213
+ background: #fff;
214
+ display: none;
215
+ position: absolute;
216
+ top: 36px;
217
+ right: 18px;
218
+ width: 500px;
219
+ height: 80%;
220
+ overflow-y: scroll;
221
+ border: 1px solid #999;
222
+ border-collapse: collapse;
223
+ -webkit-box-shadow: -2px 5px 25px #aaa;
224
+ -moz-box-shadow: -2px 5px 25px #aaa;
225
+ -moz-border-radius: 2px;
226
+ -webkit-border-radius: 2px;
227
+ }
228
+
229
+ #content ul.summary li.deprecated a:link,
230
+ #content ul.summary li.deprecated a:visited { text-decoration: line-through; font-style: italic; }
231
+
232
+ /* syntax highlighting */
233
+ .source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
234
+ #filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
235
+ #filecontents pre.code, .docstring pre.code { display: block; }
236
+ .source_code .lines { padding-right: 12px; color: #555; text-align: right; }
237
+ #filecontents pre.code, .docstring pre.code,
238
+ .tags .example { padding: 5px 12px; margin-top: 4px; border: 1px solid #eef; background: #f5f5ff; }
239
+ pre.code { color: #000; }
240
+ pre.code .info.file { color: #555; }
241
+ pre.code .val { color: #036A07; }
242
+ pre.code .tstring_content,
243
+ pre.code .heredoc_beg, pre.code .heredoc_end,
244
+ pre.code .qwords_beg, pre.code .qwords_end,
245
+ pre.code .tstring, pre.code .dstring { color: #036A07; }
246
+ pre.code .fid, pre.code .id.new, pre.code .id.to_s,
247
+ pre.code .id.to_sym, pre.code .id.to_f,
248
+ pre.code .dot + pre.code .id,
249
+ pre.code .id.to_i pre.code .id.each { color: #0085FF; }
250
+ pre.code .comment { color: #0066FF; }
251
+ pre.code .const, pre.code .constant { color: #585CF6; }
252
+ pre.code .symbol { color: #C5060B; }
253
+ pre.code .kw,
254
+ pre.code .label,
255
+ pre.code .id.require,
256
+ pre.code .id.extend,
257
+ pre.code .id.include { color: #0000FF; }
258
+ pre.code .ivar { color: #318495; }
259
+ pre.code .gvar,
260
+ pre.code .id.backref,
261
+ pre.code .id.nth_ref { color: #6D79DE; }
262
+ pre.code .regexp, .dregexp { color: #036A07; }
263
+