reqless 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +8 -0
  3. data/README.md +648 -0
  4. data/Rakefile +117 -0
  5. data/bin/docker-build-and-test +22 -0
  6. data/exe/reqless-web +11 -0
  7. data/lib/reqless/config.rb +31 -0
  8. data/lib/reqless/failure_formatter.rb +43 -0
  9. data/lib/reqless/job.rb +496 -0
  10. data/lib/reqless/job_reservers/ordered.rb +29 -0
  11. data/lib/reqless/job_reservers/round_robin.rb +46 -0
  12. data/lib/reqless/job_reservers/shuffled_round_robin.rb +21 -0
  13. data/lib/reqless/lua/reqless-lib.lua +2965 -0
  14. data/lib/reqless/lua/reqless.lua +2545 -0
  15. data/lib/reqless/lua_script.rb +90 -0
  16. data/lib/reqless/middleware/requeue_exceptions.rb +94 -0
  17. data/lib/reqless/middleware/retry_exceptions.rb +72 -0
  18. data/lib/reqless/middleware/sentry.rb +66 -0
  19. data/lib/reqless/middleware/timeout.rb +63 -0
  20. data/lib/reqless/queue.rb +189 -0
  21. data/lib/reqless/queue_priority_pattern.rb +16 -0
  22. data/lib/reqless/server/static/css/bootstrap-responsive.css +686 -0
  23. data/lib/reqless/server/static/css/bootstrap-responsive.min.css +12 -0
  24. data/lib/reqless/server/static/css/bootstrap.css +3991 -0
  25. data/lib/reqless/server/static/css/bootstrap.min.css +689 -0
  26. data/lib/reqless/server/static/css/codemirror.css +112 -0
  27. data/lib/reqless/server/static/css/docs.css +839 -0
  28. data/lib/reqless/server/static/css/jquery.noty.css +105 -0
  29. data/lib/reqless/server/static/css/noty_theme_twitter.css +137 -0
  30. data/lib/reqless/server/static/css/style.css +200 -0
  31. data/lib/reqless/server/static/favicon.ico +0 -0
  32. data/lib/reqless/server/static/img/glyphicons-halflings-white.png +0 -0
  33. data/lib/reqless/server/static/img/glyphicons-halflings.png +0 -0
  34. data/lib/reqless/server/static/js/bootstrap-alert.js +94 -0
  35. data/lib/reqless/server/static/js/bootstrap-scrollspy.js +125 -0
  36. data/lib/reqless/server/static/js/bootstrap-tab.js +130 -0
  37. data/lib/reqless/server/static/js/bootstrap-tooltip.js +270 -0
  38. data/lib/reqless/server/static/js/bootstrap-typeahead.js +285 -0
  39. data/lib/reqless/server/static/js/bootstrap.js +1726 -0
  40. data/lib/reqless/server/static/js/bootstrap.min.js +6 -0
  41. data/lib/reqless/server/static/js/codemirror.js +2972 -0
  42. data/lib/reqless/server/static/js/jquery.noty.js +220 -0
  43. data/lib/reqless/server/static/js/mode/javascript.js +360 -0
  44. data/lib/reqless/server/static/js/theme/cobalt.css +18 -0
  45. data/lib/reqless/server/static/js/theme/eclipse.css +25 -0
  46. data/lib/reqless/server/static/js/theme/elegant.css +10 -0
  47. data/lib/reqless/server/static/js/theme/lesser-dark.css +45 -0
  48. data/lib/reqless/server/static/js/theme/monokai.css +28 -0
  49. data/lib/reqless/server/static/js/theme/neat.css +9 -0
  50. data/lib/reqless/server/static/js/theme/night.css +21 -0
  51. data/lib/reqless/server/static/js/theme/rubyblue.css +21 -0
  52. data/lib/reqless/server/static/js/theme/xq-dark.css +46 -0
  53. data/lib/reqless/server/views/_job.erb +259 -0
  54. data/lib/reqless/server/views/_job_list.erb +8 -0
  55. data/lib/reqless/server/views/_pagination.erb +7 -0
  56. data/lib/reqless/server/views/about.erb +130 -0
  57. data/lib/reqless/server/views/completed.erb +11 -0
  58. data/lib/reqless/server/views/config.erb +14 -0
  59. data/lib/reqless/server/views/failed.erb +48 -0
  60. data/lib/reqless/server/views/failed_type.erb +18 -0
  61. data/lib/reqless/server/views/job.erb +17 -0
  62. data/lib/reqless/server/views/layout.erb +451 -0
  63. data/lib/reqless/server/views/overview.erb +137 -0
  64. data/lib/reqless/server/views/queue.erb +125 -0
  65. data/lib/reqless/server/views/queues.erb +45 -0
  66. data/lib/reqless/server/views/tag.erb +6 -0
  67. data/lib/reqless/server/views/throttles.erb +38 -0
  68. data/lib/reqless/server/views/track.erb +75 -0
  69. data/lib/reqless/server/views/worker.erb +34 -0
  70. data/lib/reqless/server/views/workers.erb +14 -0
  71. data/lib/reqless/server.rb +549 -0
  72. data/lib/reqless/subscriber.rb +74 -0
  73. data/lib/reqless/test_helpers/worker_helpers.rb +55 -0
  74. data/lib/reqless/throttle.rb +57 -0
  75. data/lib/reqless/version.rb +5 -0
  76. data/lib/reqless/worker/base.rb +237 -0
  77. data/lib/reqless/worker/forking.rb +215 -0
  78. data/lib/reqless/worker/serial.rb +41 -0
  79. data/lib/reqless/worker.rb +5 -0
  80. data/lib/reqless.rb +309 -0
  81. metadata +399 -0
@@ -0,0 +1,839 @@
1
+ /* Add additional stylesheets below
2
+ -------------------------------------------------- */
3
+ /*
4
+ Bootstrap's documentation styles
5
+ Special styles for presenting Bootstrap's documentation and examples
6
+ */
7
+
8
+
9
+ /* Body and structure
10
+ -------------------------------------------------- */
11
+ body {
12
+ position: relative;
13
+ padding-top: 90px;
14
+ background-color: #fff;
15
+ background-repeat: repeat-x;
16
+ background-position: 0 40px;
17
+ }
18
+
19
+ /* Faded out hr */
20
+ hr.soften {
21
+ height: 1px;
22
+ margin: 54px 0;
23
+ background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
24
+ background-image: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
25
+ background-image: -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
26
+ background-image: -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
27
+ border: 0;
28
+ }
29
+
30
+
31
+ /* Jumbotrons
32
+ -------------------------------------------------- */
33
+ .jumbotron {
34
+ position: relative;
35
+ }
36
+ .jumbotron h1 {
37
+ margin-bottom: 9px;
38
+ font-size: 81px;
39
+ font-weight: bold;
40
+ letter-spacing: -1px;
41
+ line-height: 1;
42
+ }
43
+ .jumbotron p {
44
+ margin-bottom: 18px;
45
+ font-weight: 300;
46
+ }
47
+ .jumbotron .btn-large {
48
+ font-size: 20px;
49
+ font-weight: normal;
50
+ padding: 14px 24px;
51
+ margin-right: 10px;
52
+ -webkit-border-radius: 6px;
53
+ -moz-border-radius: 6px;
54
+ border-radius: 6px;
55
+ }
56
+ .jumbotron .btn-large small {
57
+ font-size: 14px;
58
+ }
59
+
60
+ /* Masthead (docs home) */
61
+ .masthead {
62
+ padding-top: 36px;
63
+ margin-bottom: 72px;
64
+ }
65
+ .masthead h1,
66
+ .masthead p {
67
+ text-align: center;
68
+ }
69
+ .masthead h1 {
70
+ margin-bottom: 18px;
71
+ }
72
+ .masthead p {
73
+ margin-left: 5%;
74
+ margin-right: 5%;
75
+ font-size: 30px;
76
+ line-height: 36px;
77
+ }
78
+
79
+
80
+ /* Specific jumbotrons
81
+ ------------------------- */
82
+ /* supporting docs pages */
83
+ .subhead {
84
+ padding-bottom: 0;
85
+ margin-bottom: 9px;
86
+ }
87
+ .subhead h1 {
88
+ font-size: 54px;
89
+ }
90
+
91
+ /* Subnav */
92
+ .subnav {
93
+ width: 100%;
94
+ height: 36px;
95
+ background-color: #eeeeee; /* Old browsers */
96
+ background-repeat: repeat-x; /* Repeat the gradient */
97
+ background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%); /* FF3.6+ */
98
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
99
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Chrome 10+,Safari 5.1+ */
100
+ background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* IE10+ */
101
+ background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Opera 11.10+ */
102
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
103
+ background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* W3C */
104
+ border: 1px solid #e5e5e5;
105
+ -webkit-border-radius: 4px;
106
+ -moz-border-radius: 4px;
107
+ border-radius: 4px;
108
+ }
109
+ .subnav .nav {
110
+ margin-bottom: 0;
111
+ }
112
+ .subnav .nav > li > a {
113
+ margin: 0;
114
+ padding-top: 11px;
115
+ padding-bottom: 11px;
116
+ border-left: 1px solid #f5f5f5;
117
+ border-right: 1px solid #e5e5e5;
118
+ -webkit-border-radius: 0;
119
+ -moz-border-radius: 0;
120
+ border-radius: 0;
121
+ }
122
+ .subnav .nav > .active > a,
123
+ .subnav .nav > .active > a:hover {
124
+ padding-left: 13px;
125
+ color: #777;
126
+ background-color: #e9e9e9;
127
+ border-right-color: #ddd;
128
+ border-left: 0;
129
+ -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
130
+ -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
131
+ box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
132
+ }
133
+ .subnav .nav > .active > a .caret,
134
+ .subnav .nav > .active > a:hover .caret {
135
+ border-top-color: #777;
136
+ }
137
+ .subnav .nav > li:first-child > a,
138
+ .subnav .nav > li:first-child > a:hover {
139
+ border-left: 0;
140
+ padding-left: 12px;
141
+ -webkit-border-radius: 4px 0 0 4px;
142
+ -moz-border-radius: 4px 0 0 4px;
143
+ border-radius: 4px 0 0 4px;
144
+ }
145
+ .subnav .nav > li:last-child > a {
146
+ border-right: 0;
147
+ }
148
+ .subnav .dropdown-menu {
149
+ -webkit-border-radius: 0 0 4px 4px;
150
+ -moz-border-radius: 0 0 4px 4px;
151
+ border-radius: 0 0 4px 4px;
152
+ }
153
+
154
+ /* Fixed subnav on scroll, but only for 980px and up (sorry IE!) */
155
+ @media (min-width: 980px) {
156
+ .subnav-fixed {
157
+ position: fixed;
158
+ top: 40px;
159
+ left: 0;
160
+ right: 0;
161
+ z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */
162
+ border-color: #d5d5d5;
163
+ border-width: 0 0 1px; /* drop the border on the fixed edges */
164
+ -webkit-border-radius: 0;
165
+ -moz-border-radius: 0;
166
+ border-radius: 0;
167
+ -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
168
+ -moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
169
+ box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
170
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */
171
+ }
172
+ .subnav-fixed .nav {
173
+ width: 938px;
174
+ margin: 0 auto;
175
+ padding: 0 1px;
176
+ }
177
+ .subnav .nav > li:first-child > a,
178
+ .subnav .nav > li:first-child > a:hover {
179
+ -webkit-border-radius: 0;
180
+ -moz-border-radius: 0;
181
+ border-radius: 0;
182
+ }
183
+ }
184
+
185
+
186
+ /* Quick links
187
+ -------------------------------------------------- */
188
+ .bs-links {
189
+ margin: 36px 0;
190
+ }
191
+ .quick-links {
192
+ min-height: 30px;
193
+ margin: 0;
194
+ padding: 5px 20px;
195
+ list-style: none;
196
+ text-align: center;
197
+ overflow: hidden;
198
+ }
199
+ .quick-links:first-child {
200
+ min-height: 0;
201
+ }
202
+ .quick-links li {
203
+ display: inline;
204
+ margin: 0 5px;
205
+ color: #999;
206
+ }
207
+ .quick-links .github-btn,
208
+ .quick-links .tweet-btn,
209
+ .quick-links .follow-btn {
210
+ position: relative;
211
+ top: 5px;
212
+ }
213
+
214
+
215
+ /* Marketing section of Overview
216
+ -------------------------------------------------- */
217
+ .marketing .row {
218
+ margin-bottom: 9px;
219
+ }
220
+ .marketing h1 {
221
+ margin: 36px 0 27px;
222
+ font-size: 40px;
223
+ font-weight: 300;
224
+ text-align: center;
225
+ }
226
+ .marketing h2,
227
+ .marketing h3 {
228
+ font-weight: 300;
229
+ }
230
+ .marketing h2 {
231
+ font-size: 22px;
232
+ }
233
+ .marketing p {
234
+ margin-right: 10px;
235
+ }
236
+ .marketing .bs-icon {
237
+ float: left;
238
+ margin: 7px 10px 0 0;
239
+ opacity: .8;
240
+ }
241
+ .marketing .small-bs-icon {
242
+ float: left;
243
+ margin: 4px 5px 0 0;
244
+ }
245
+
246
+
247
+
248
+ /* Footer
249
+ -------------------------------------------------- */
250
+ .footer {
251
+ margin-top: 45px;
252
+ padding: 35px 0 36px;
253
+ border-top: 1px solid #e5e5e5;
254
+ }
255
+ .footer p {
256
+ margin-bottom: 0;
257
+ color: #555;
258
+ }
259
+
260
+
261
+
262
+ /* Special grid styles
263
+ -------------------------------------------------- */
264
+ .show-grid {
265
+ margin-top: 10px;
266
+ margin-bottom: 20px;
267
+ }
268
+ .show-grid [class*="span"] {
269
+ background-color: #eee;
270
+ text-align: center;
271
+ -webkit-border-radius: 3px;
272
+ -moz-border-radius: 3px;
273
+ border-radius: 3px;
274
+ min-height: 30px;
275
+ line-height: 30px;
276
+ }
277
+ .show-grid:hover [class*="span"] {
278
+ background: #ddd;
279
+ }
280
+ .show-grid .show-grid {
281
+ margin-top: 0;
282
+ margin-bottom: 0;
283
+ }
284
+ .show-grid .show-grid [class*="span"] {
285
+ background-color: #ccc;
286
+ }
287
+
288
+
289
+ /* Render mini layout previews
290
+ -------------------------------------------------- */
291
+ .mini-layout {
292
+ border: 1px solid #ddd;
293
+ -webkit-border-radius: 6px;
294
+ -moz-border-radius: 6px;
295
+ border-radius: 6px;
296
+ -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.075);
297
+ -moz-box-shadow: 0 1px 2px rgba(0,0,0,.075);
298
+ box-shadow: 0 1px 2px rgba(0,0,0,.075);
299
+ }
300
+ .mini-layout {
301
+ height: 240px;
302
+ margin-bottom: 20px;
303
+ padding: 9px;
304
+ }
305
+ .mini-layout div {
306
+ -webkit-border-radius: 3px;
307
+ -moz-border-radius: 3px;
308
+ border-radius: 3px;
309
+ }
310
+ .mini-layout .mini-layout-body {
311
+ background-color: #dceaf4;
312
+ margin: 0 auto;
313
+ width: 70%;
314
+ height: 240px;
315
+ }
316
+ .mini-layout.fluid .mini-layout-sidebar,
317
+ .mini-layout.fluid .mini-layout-header,
318
+ .mini-layout.fluid .mini-layout-body {
319
+ float: left;
320
+ }
321
+ .mini-layout.fluid .mini-layout-sidebar {
322
+ background-color: #bbd8e9;
323
+ width: 20%;
324
+ height: 240px;
325
+ }
326
+ .mini-layout.fluid .mini-layout-body {
327
+ width: 77.5%;
328
+ margin-left: 2.5%;
329
+ }
330
+
331
+
332
+ /* Popover docs
333
+ -------------------------------------------------- */
334
+ .popover-well {
335
+ min-height: 160px;
336
+ }
337
+ .popover-well .popover {
338
+ display: block;
339
+ }
340
+ .popover-well .popover-wrapper {
341
+ width: 50%;
342
+ height: 160px;
343
+ float: left;
344
+ margin-left: 55px;
345
+ position: relative;
346
+ }
347
+ .popover-well .popover-menu-wrapper {
348
+ height: 80px;
349
+ }
350
+ .large-bird {
351
+ margin: 5px 0 0 310px;
352
+ opacity: .1;
353
+ }
354
+
355
+
356
+ /* Download page
357
+ -------------------------------------------------- */
358
+ .download .page-header {
359
+ margin-top: 36px;
360
+ }
361
+ .page-header .toggle-all {
362
+ margin-top: 5px;
363
+ }
364
+
365
+ /* Space out h3s when following a section */
366
+ .download h3 {
367
+ margin-bottom: 5px;
368
+ }
369
+ .download-builder input + h3,
370
+ .download-builder .checkbox + h3 {
371
+ margin-top: 9px;
372
+ }
373
+
374
+ /* Fields for variables */
375
+ .download-builder input[type=text] {
376
+ margin-bottom: 9px;
377
+ font-family: Menlo, Monaco, "Courier New", monospace;
378
+ font-size: 12px;
379
+ color: #d14;
380
+ }
381
+ .download-builder input[type=text]:focus {
382
+ background-color: #fff;
383
+ }
384
+
385
+ /* Custom, larger checkbox labels */
386
+ .download .checkbox {
387
+ padding: 6px 10px 6px 25px;
388
+ color: #555;
389
+ background-color: #f9f9f9;
390
+ -webkit-border-radius: 3px;
391
+ -moz-border-radius: 3px;
392
+ border-radius: 3px;
393
+ cursor: pointer;
394
+ }
395
+ .download .checkbox:hover {
396
+ color: #333;
397
+ background-color: #f5f5f5;
398
+ }
399
+ .download .checkbox small {
400
+ font-size: 12px;
401
+ color: #777;
402
+ }
403
+
404
+ /* Variables section */
405
+ #variables label {
406
+ margin-bottom: 0;
407
+ }
408
+
409
+ /* Giant download button */
410
+ .download-btn {
411
+ margin: 36px 0 108px;
412
+ }
413
+ #download p,
414
+ #download h4 {
415
+ max-width: 50%;
416
+ margin: 0 auto;
417
+ color: #999;
418
+ text-align: center;
419
+ }
420
+ #download h4 {
421
+ margin-bottom: 0;
422
+ }
423
+ #download p {
424
+ margin-bottom: 18px;
425
+ }
426
+ .download-btn .btn {
427
+ display: block;
428
+ width: auto;
429
+ padding: 19px 24px;
430
+ margin-bottom: 27px;
431
+ font-size: 30px;
432
+ line-height: 1;
433
+ text-align: center;
434
+ -webkit-border-radius: 6px;
435
+ -moz-border-radius: 6px;
436
+ border-radius: 6px;
437
+ }
438
+
439
+
440
+
441
+ /* Color swatches on LESS docs page
442
+ -------------------------------------------------- */
443
+ /* Sets the width of the td */
444
+ .swatch-col {
445
+ width: 30px;
446
+ }
447
+ /* Le swatch */
448
+ .swatch {
449
+ display: inline-block;
450
+ width: 30px;
451
+ height: 20px;
452
+ margin: -6px 0;
453
+ -webkit-border-radius: 3px;
454
+ -moz-border-radius: 3px;
455
+ border-radius: 3px;
456
+ }
457
+ /* For white swatches, give a border */
458
+ .swatch-bordered {
459
+ width: 28px;
460
+ height: 18px;
461
+ border: 1px solid #eee;
462
+ }
463
+
464
+
465
+ /* Misc
466
+ -------------------------------------------------- */
467
+
468
+ img {
469
+ max-width: 100%;
470
+ }
471
+
472
+ /* Make tables spaced out a bit more */
473
+ h2 + table,
474
+ h3 + table,
475
+ h4 + table,
476
+ h2 + .row {
477
+ margin-top: 5px;
478
+ }
479
+
480
+ /* Example sites showcase */
481
+ .example-sites img {
482
+ max-width: 100%;
483
+ margin: 0 auto;
484
+ }
485
+ .marketing-byline {
486
+ margin: -18px 0 27px;
487
+ font-size: 18px;
488
+ font-weight: 300;
489
+ line-height: 24px;
490
+ color: #999;
491
+ text-align: center;
492
+ }
493
+
494
+ .scrollspy-example {
495
+ height: 200px;
496
+ overflow: auto;
497
+ position: relative;
498
+ }
499
+
500
+ /* Remove bottom margin on example forms in wells */
501
+ form.well {
502
+ padding: 14px;
503
+ }
504
+
505
+ /* Tighten up spacing */
506
+ .well hr {
507
+ margin: 18px 0;
508
+ }
509
+
510
+ /* Fake the :focus state to demo it */
511
+ .focused {
512
+ border-color: rgba(82,168,236,.8);
513
+ -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
514
+ -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
515
+ box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
516
+ outline: 0;
517
+ }
518
+
519
+ /* For input sizes, make them display block */
520
+ .docs-input-sizes select,
521
+ .docs-input-sizes input[type=text] {
522
+ display: block;
523
+ margin-bottom: 9px;
524
+ }
525
+
526
+ /* Icons
527
+ ------------------------- */
528
+ .the-icons {
529
+ margin-left: 0;
530
+ list-style: none;
531
+ }
532
+ .the-icons i:hover {
533
+ background-color: rgba(255,0,0,.25);
534
+ }
535
+
536
+ /* Eaxmples page
537
+ ------------------------- */
538
+ .bootstrap-examples .thumbnail {
539
+ margin-bottom: 9px;
540
+ background-color: #fff;
541
+ }
542
+
543
+ /* Responsive table
544
+ ------------------------- */
545
+ .responsive-utilities th small {
546
+ display: block;
547
+ font-weight: normal;
548
+ color: #999;
549
+ }
550
+ .responsive-utilities tbody th {
551
+ font-weight: normal;
552
+ }
553
+ .responsive-utilities td {
554
+ text-align: center;
555
+ }
556
+ .responsive-utilities td.is-visible {
557
+ color: #468847;
558
+ background-color: #dff0d8 !important;
559
+ }
560
+ .responsive-utilities td.is-hidden {
561
+ color: #ccc;
562
+ background-color: #f9f9f9 !important;
563
+ }
564
+
565
+ /* Responsive tests
566
+ ------------------------- */
567
+ .responsive-utilities-test {
568
+ margin-top: 5px;
569
+ margin-left: 0;
570
+ list-style: none;
571
+ overflow: hidden; /* clear floats */
572
+ }
573
+ .responsive-utilities-test li {
574
+ position: relative;
575
+ float: left;
576
+ width: 25%;
577
+ height: 43px;
578
+ font-size: 14px;
579
+ font-weight: bold;
580
+ line-height: 43px;
581
+ color: #999;
582
+ text-align: center;
583
+ border: 1px solid #ddd;
584
+ -webkit-border-radius: 4px;
585
+ -moz-border-radius: 4px;
586
+ border-radius: 4px;
587
+ }
588
+ .responsive-utilities-test li + li {
589
+ margin-left: 10px;
590
+ }
591
+ .responsive-utilities-test span {
592
+ position: absolute;
593
+ top: -1px;
594
+ left: -1px;
595
+ right: -1px;
596
+ bottom: -1px;
597
+ -webkit-border-radius: 4px;
598
+ -moz-border-radius: 4px;
599
+ border-radius: 4px;
600
+ }
601
+ .responsive-utilities-test span {
602
+ color: #468847;
603
+ background-color: #dff0d8;
604
+ border: 1px solid #d6e9c6;
605
+ }
606
+
607
+
608
+ /* Responsive Docs
609
+ -------------------------------------------------- */
610
+ @media (max-width: 480px) {
611
+
612
+ /* Reduce padding above jumbotron */
613
+ body {
614
+ padding-top: 70px;
615
+ }
616
+
617
+ /* Change up some type stuff */
618
+ h2 {
619
+ margin-top: 27px;
620
+ }
621
+ h2 small {
622
+ display: block;
623
+ line-height: 18px;
624
+ }
625
+ h3 {
626
+ margin-top: 18px;
627
+ }
628
+
629
+ /* Adjust the jumbotron */
630
+ .jumbotron h1,
631
+ .jumbotron p {
632
+ text-align: center;
633
+ margin-right: 0;
634
+ }
635
+ .jumbotron h1 {
636
+ font-size: 45px;
637
+ margin-right: 0;
638
+ }
639
+ .jumbotron p {
640
+ margin-right: 0;
641
+ margin-left: 0;
642
+ font-size: 18px;
643
+ line-height: 24px;
644
+ }
645
+ .jumbotron .btn {
646
+ display: block;
647
+ font-size: 18px;
648
+ padding: 10px 14px;
649
+ margin: 0 auto 10px;
650
+ }
651
+ /* Masthead (home page jumbotron) */
652
+ .masthead {
653
+ padding-top: 0;
654
+ }
655
+
656
+ /* Don't space out quick links so much */
657
+ .quick-links {
658
+ margin: 40px 0 0;
659
+ }
660
+ /* hide the bullets on mobile since our horizontal space is limited */
661
+ .quick-links .divider {
662
+ display: none;
663
+ }
664
+
665
+ /* center example sites */
666
+ .example-sites {
667
+ margin-left: 0;
668
+ }
669
+ .example-sites > li {
670
+ float: none;
671
+ display: block;
672
+ max-width: 280px;
673
+ margin: 0 auto 18px;
674
+ text-align: center;
675
+ }
676
+ .example-sites .thumbnail > img {
677
+ max-width: 270px;
678
+ }
679
+
680
+ table code {
681
+ white-space: normal;
682
+ word-wrap: break-word;
683
+ word-break: break-all;
684
+ }
685
+
686
+ /* Modal example */
687
+ .modal-example .modal {
688
+ position: relative;
689
+ top: auto;
690
+ right: auto;
691
+ bottom: auto;
692
+ left: auto;
693
+ }
694
+
695
+ }
696
+
697
+
698
+ @media (max-width: 768px) {
699
+
700
+ /* Remove any padding from the body */
701
+ body {
702
+ padding-top: 0;
703
+ }
704
+
705
+ /* Jumbotron buttons */
706
+ .jumbotron .btn {
707
+ margin-bottom: 10px;
708
+ }
709
+
710
+ /* Subnav */
711
+ .subnav {
712
+ position: static;
713
+ top: auto;
714
+ z-index: auto;
715
+ width: auto;
716
+ height: auto;
717
+ background: #fff; /* whole background property since we use a background-image for gradient */
718
+ -webkit-box-shadow: none;
719
+ -moz-box-shadow: none;
720
+ box-shadow: none;
721
+ }
722
+ .subnav .nav > li {
723
+ float: none;
724
+ }
725
+ .subnav .nav > li > a {
726
+ border: 0;
727
+ }
728
+ .subnav .nav > li + li > a {
729
+ border-top: 1px solid #e5e5e5;
730
+ }
731
+ .subnav .nav > li:first-child > a,
732
+ .subnav .nav > li:first-child > a:hover {
733
+ -webkit-border-radius: 4px 4px 0 0;
734
+ -moz-border-radius: 4px 4px 0 0;
735
+ border-radius: 4px 4px 0 0;
736
+ }
737
+
738
+ /* Popovers */
739
+ .large-bird {
740
+ display: none;
741
+ }
742
+ .popover-well .popover-wrapper {
743
+ margin-left: 0;
744
+ }
745
+
746
+ /* Space out the show-grid examples */
747
+ .show-grid [class*="span"] {
748
+ margin-bottom: 5px;
749
+ }
750
+
751
+ /* Unfloat the back to top link in footer */
752
+ .footer .pull-right {
753
+ float: none;
754
+ }
755
+ .footer p {
756
+ margin-bottom: 9px;
757
+ }
758
+
759
+ }
760
+
761
+
762
+ @media (min-width: 480px) and (max-width: 768px) {
763
+
764
+ /* Scale down the jumbotron content */
765
+ .jumbotron h1 {
766
+ font-size: 54px;
767
+ }
768
+ .jumbotron p {
769
+ margin-right: 0;
770
+ margin-left: 0;
771
+ }
772
+
773
+ }
774
+
775
+
776
+ @media (min-width: 768px) and (max-width: 980px) {
777
+
778
+ /* Remove any padding from the body */
779
+ body {
780
+ padding-top: 0;
781
+ }
782
+
783
+ /* Scale down the jumbotron content */
784
+ .jumbotron h1 {
785
+ font-size: 72px;
786
+ }
787
+
788
+ }
789
+
790
+
791
+ @media (max-width: 980px) {
792
+
793
+ /* Unfloat brand */
794
+ .navbar-fixed-top .brand {
795
+ float: left;
796
+ margin-left: 0;
797
+ padding-left: 10px;
798
+ padding-right: 10px;
799
+ }
800
+
801
+ /* Inline-block quick links for more spacing */
802
+ .quick-links li {
803
+ display: inline-block;
804
+ margin: 5px;
805
+ }
806
+
807
+ }
808
+
809
+
810
+ /* LARGE DESKTOP SCREENS */
811
+ @media (min-width: 1210px) {
812
+
813
+ /* Update subnav container */
814
+ .subnav-fixed .nav {
815
+ width: 1168px; /* 2px less to account for left/right borders being removed when in fixed mode */
816
+ }
817
+
818
+ }
819
+
820
+ /* For proper failed job display*/
821
+ .l-sidebyside {
822
+ overflow:auto;
823
+ }
824
+
825
+ .l-sidebyside > * {
826
+ display:inline-block;
827
+ *display: inline;
828
+ *zoom: 1;
829
+ }
830
+
831
+ .failed-job > .min-col-size {
832
+ min-width: 395px;
833
+ }
834
+
835
+ .failed-job .row {
836
+ margin-left:0;
837
+ margin-right:10px;
838
+ height: 30px;
839
+ }