tungsten 0.1.14 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/tungsten/favicon.ico +0 -0
  3. data/app/assets/images/tungsten/logo.svg +1 -0
  4. data/app/assets/images/tungsten/num.svg +77 -0
  5. data/app/assets/stylesheets/tungsten/_index.scss +1 -0
  6. data/app/assets/stylesheets/tungsten/pages/_error.scss +157 -0
  7. data/app/assets/stylesheets/tungsten/pages/_index.scss +1 -0
  8. data/app/controllers/tungsten/errors_controller.rb +15 -0
  9. data/app/helpers/tungsten/content_helper.rb +5 -1
  10. data/app/helpers/tungsten/error_helper.rb +9 -0
  11. data/app/views/layouts/tungsten/default.html.slim +3 -0
  12. data/app/views/layouts/tungsten/errors.html.slim +25 -0
  13. data/app/views/shared/tungsten/_num.html.slim +90 -0
  14. data/app/views/tungsten/errors/bad_request.html.slim +5 -0
  15. data/app/views/tungsten/errors/forbidden.html.slim +5 -0
  16. data/app/views/tungsten/errors/internal_server_error.html.slim +5 -0
  17. data/app/views/tungsten/errors/method_not_allowed.html.slim +5 -0
  18. data/app/views/tungsten/errors/not_acceptable.html.slim +5 -0
  19. data/app/views/tungsten/errors/not_found.html.slim +5 -0
  20. data/app/views/tungsten/errors/not_implemented.html.slim +5 -0
  21. data/app/views/tungsten/errors/unauthorized.html.slim +5 -0
  22. data/app/views/tungsten/errors/unprocessable_entity.html.slim +5 -0
  23. data/lib/tungsten.rb +9 -4
  24. data/lib/tungsten/version.rb +1 -1
  25. data/public/{code-0.1.14.js → code-0.1.15.js} +1 -1
  26. data/public/{code-0.1.14.js.gz → code-0.1.15.js.gz} +0 -0
  27. data/public/{code-0.1.14.map.json → code-0.1.15.map.json} +0 -0
  28. data/public/{tungsten-0.1.14.css → tungsten-0.1.15.css} +690 -0
  29. data/public/tungsten-0.1.15.css.gz +0 -0
  30. data/public/{tungsten-0.1.14.js → tungsten-0.1.15.js} +1 -1
  31. data/public/{tungsten-0.1.14.js.gz → tungsten-0.1.15.js.gz} +0 -0
  32. data/public/{tungsten-0.1.14.map.json → tungsten-0.1.15.map.json} +0 -0
  33. metadata +44 -13
  34. data/app/assets/stylesheets/tungsten/_code-color.scss +0 -0
  35. data/public/tungsten-0.1.14.css.gz +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2971fbdb610dfaecee71eb4afd2ae7c4d9d81f11
4
- data.tar.gz: 39be8c30e9d355d24cd84cb904fa243823504f23
3
+ metadata.gz: a04d28f2e86fa0ca071aa9932c23d09e19ecec67
4
+ data.tar.gz: d0e8af8f420913df3c8df6f3ebaa61776ce11930
5
5
  SHA512:
6
- metadata.gz: ad2b941efe66b4566baa25db1a9aecc0744ccb63b6b776f96339b7996ecaddb60273c88624d6b598991ff02d33928e3fe3d592dbd18265e5e2be6520484ac08d
7
- data.tar.gz: 805cf087682e152ec9766078597e5ffd43480ebe3b8259d7f7fb27bee69297bbdd34d1e5703f2b3940b23b2c79c59bb3c3462e8688c3102d1ad4adb6d58b8092
6
+ metadata.gz: efaeb8115b20223ef353535af1e79fec38d54d2408fef50690bc550865a4c7d863fea3f376d7fe5051ec7728b759c6c85634b6535a18c8776a2d1c3dfef48910
7
+ data.tar.gz: 43a49b18bca19e17581d1348bfe4969c3bf214cb51e561d6c5d16ff2588eb52cb0c64e6eb692c8f68dbbb2e6299697b4aff9ccda9234320ae5fc66b9413bd325
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M152.89 179.214l-49.78 28.74-53.332-30.792L0 148.42V86.838l53.333-30.792 49.777 28.74 49.777-28.74 53.333 30.792 49.78 28.74v61.584l-53.333 30.792-49.778-28.74zm3.137-6.374v-49.052l42.975 24.635.01 49.27-42.985-24.853zm-99.14.217v-49.27l43.126 24.77.01 49.566-43.135-25.066zM7.11 144.317v-49.27l42.668 24.635.002 49.27-42.67-24.635zm96-51.32l42.67 24.634-42.67 24.635-42.67-24.634 42.67-24.634zm99.557 0l42.668 24.634-42.668 24.635-42.67-24.634 42.67-24.634zM53.333 64.256l42.67 24.634-42.67 24.635-42.67-24.634 42.67-24.634zm99.554 0l42.67 24.634-42.67 24.635-42.67-24.634 42.67-24.634z"/><path d="M6.82 144.547l.023-50 93.295 53.877.04 50.06L6.82 144.547zM155.736 173.024l.14-49.667 43.428 24.894-.045 50.234-43.524-25.46z" fill-opacity=".349"/></svg>
@@ -0,0 +1,77 @@
1
+ <svg viewBox="0 0 143 104" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414">
2
+ <g class="error-box">
3
+ <path class="error-box-bg" d="M53.725,43.28l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
4
+ <path class="error-box-top" d="M53.725,2.885l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
5
+ <path class="error-box-side" d="M37.482,31.018l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
6
+ </g>
7
+ <g class="error-box">
8
+ <path class="error-box-bg" d="M71.217,53.379l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
9
+ <path class="error-box-top" d="M71.217,12.984l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
10
+ <path class="error-box-side" d="M54.974,41.117l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
11
+ </g>
12
+ <g class="error-box">
13
+ <path class="error-box-bg" d="M88.709,63.478l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
14
+ <path class="error-box-top" d="M88.709,23.083l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
15
+ <path class="error-box-side" d="M72.466,51.216l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
16
+ </g>
17
+ <g class="error-box">
18
+ <path class="error-box-bg" d="M106.201,73.577l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
19
+ <path class="error-box-top" d="M106.201,33.182l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
20
+ <path class="error-box-side" d="M89.958,61.315l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
21
+ </g>
22
+ <g class="error-box">
23
+ <path class="error-box-bg" d="M123.693,83.676l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
24
+ <path class="error-box-top" d="M123.693,43.281l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
25
+ <path class="error-box-side" d="M107.45,71.414l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
26
+ </g>
27
+ <g class="error-box">
28
+ <path class="error-box-bg" d="M36.219,53.403l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
29
+ <path class="error-box-top" d="M36.219,13.008l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
30
+ <path class="error-box-side" d="M19.976,41.141l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
31
+ </g>
32
+ <g class="error-box">
33
+ <path class="error-box-bg" d="M53.725,63.478l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
34
+ <path class="error-box-top" d="M53.725,23.083l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
35
+ <path class="error-box-side" d="M37.482,51.216l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
36
+ </g>
37
+ <g class="error-box">
38
+ <path class="error-box-bg" d="M71.203,73.601l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
39
+ <path class="error-box-top" d="M71.203,33.206l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
40
+ <path class="error-box-side" d="M54.96,61.339l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
41
+ </g>
42
+ <g class="error-box">
43
+ <path class="error-box-bg" d="M88.709,83.676l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
44
+ <path class="error-box-top" d="M88.709,43.281l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
45
+ <path class="error-box-side" d="M72.466,71.414l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
46
+ </g>
47
+ <g class="error-box">
48
+ <path class="error-box-bg" d="M106.187,93.799l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
49
+ <path class="error-box-top" d="M106.187,53.404l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
50
+ <path class="error-box-side" d="M89.944,81.537l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
51
+ </g>
52
+ <g class="error-box">
53
+ <path class="error-box-bg" d="M18.741,63.478l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
54
+ <path class="error-box-top" d="M18.741,23.083l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
55
+ <path class="error-box-side" d="M2.498,51.216l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
56
+ </g>
57
+ <g class="error-box">
58
+ <path class="error-box-bg" d="M36.233,73.577l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
59
+ <path class="error-box-top" d="M36.233,33.182l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
60
+ <path class="error-box-side" d="M19.99,61.315l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
61
+ </g>
62
+ <g class="error-box">
63
+ <path class="error-box-bg" d="M53.725,83.676l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
64
+ <path class="error-box-top" d="M53.725,43.281l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
65
+ <path class="error-box-side" d="M37.482,71.414l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
66
+ </g>
67
+ <g class="error-box">
68
+ <path class="error-box-bg" d="M71.217,93.775l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
69
+ <path class="error-box-top" d="M71.217,53.38l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
70
+ <path class="error-box-side" d="M54.974,81.513l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
71
+ </g>
72
+ <g class="error-box">
73
+ <path class="error-box-bg" d="M88.709,103.874l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
74
+ <path class="error-box-top" d="M88.709,63.479l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" style="fill:#fff;" />
75
+ <path class="error-box-side" d="M72.466,91.612l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" style="fill:#888" />
76
+ </g>
77
+ </svg>
@@ -3,3 +3,4 @@
3
3
  @import 'core/index';
4
4
  @import 'code/index';
5
5
  @import 'form/index';
6
+ @import 'pages/index';
@@ -0,0 +1,157 @@
1
+ $error-bg: $gray-09;//#4b6cb7;
2
+ .error-page {
3
+ background: $error-bg;
4
+ background: linear-gradient( to bottom, darken($error-bg, 10), $error-bg, $error-bg, $error-bg);
5
+
6
+ h1 {
7
+ font-size: 50px;
8
+ font-weight: 600;
9
+ color: #fff;
10
+ text-shadow: 0 1px 0 $gray-11;
11
+ }
12
+ p {
13
+ color: #fff;
14
+ font-size: 1.2em;
15
+ }
16
+
17
+ footer {
18
+ position: fixed;
19
+ bottom: 0; left: 0; right: 0;
20
+ line-height: 2.5em;
21
+ padding: .5em;
22
+ }
23
+ }
24
+
25
+ .error-page body {
26
+ text-align: center;
27
+ display: grid;
28
+ align-content: center;
29
+ }
30
+ .error-svgs {
31
+ $num-width: 200px;
32
+ $num-height: 145px;
33
+ $x-diff: $num-width/2 + 3;
34
+ $y-diff: 57px;
35
+
36
+ padding-bottom: $y-diff * 2;
37
+ margin: 2em auto;
38
+ width: ($num-width * 3) - ($x-diff * 2);
39
+ animation: slide-error-code .6s .5s $timing forwards;
40
+ transform: translate3d(0, 15px, 0);
41
+
42
+ .error-number {
43
+ transform: translate3d(0,0,0);
44
+ overflow: visible;
45
+ width: $num-width;
46
+ position: relative;
47
+
48
+ .error-box {
49
+ opacity: 0;
50
+ animation-fill-mode: forwards;
51
+ }
52
+
53
+ .error-box-side, .error-box-bg {
54
+ fill: $error-bg;
55
+ }
56
+ .error-box-side {
57
+ fill-opacity: .5;
58
+ }
59
+
60
+ &:nth-of-type(1) {
61
+ top: $y-diff * 2;
62
+ margin: { right: -($x-diff); }
63
+ z-index: 2;
64
+ .error-box { animation-delay: .1s; }
65
+ }
66
+ &:nth-of-type(2) {
67
+ margin: { right: -($x-diff); }
68
+ top: $y-diff;
69
+ z-index: 1;
70
+ .error-box { animation-delay: .2s; }
71
+ }
72
+ &:nth-of-type(3) {
73
+ z-index: 0;
74
+ .error-box { animation-delay: .3s; }
75
+ }
76
+ }
77
+ }
78
+
79
+ @for $i from 1 through 13 {
80
+ .error-box:nth-child(#{$i}) {
81
+ animation: drop-cube-#{$i} .8s $timing;
82
+ .error-box-bg {
83
+ $i: 14 - $i;
84
+ animation: darken-cube .8s $timing forwards;
85
+ $delay: .5s;
86
+ animation-delay: $delay;
87
+ }
88
+ }
89
+ }
90
+
91
+ @keyframes slide-error-code {
92
+ 0% {
93
+ transform: translate3d(0, 15px, 0);
94
+ }
95
+ 100% {
96
+ transform: translate3d(0, 0, 0);
97
+ }
98
+ }
99
+
100
+ @for $i from 1 through 13 {
101
+ @keyframes drop-cube-#{$i} {
102
+ 0% {
103
+ opacity: 0;
104
+ transform: translate3d(20px, -40px, 0) scale(.4);
105
+ } #{4 * $i}%, 100% {
106
+ opacity: 1;
107
+ transform: translate3d(0,0,0) scale(1);
108
+ }
109
+ }
110
+
111
+ @keyframes darken-cube {
112
+ 0% {
113
+ fill: $error-bg;
114
+ } 100% {
115
+ fill: darken($error-bg, 20);
116
+ }
117
+ }
118
+
119
+ @keyframes fade-cube-#{$i} {
120
+ 0%, #{6 * $i}% {
121
+ opacity: 0;
122
+ } 100% {
123
+ opacity: 1;
124
+ }
125
+ }
126
+ }
127
+
128
+ @keyframes error-party {
129
+ 0% {
130
+ color: #8e55dd;
131
+ } 20% {
132
+ color: #967adc;
133
+ } 40% {
134
+ color: #fef0bd;
135
+ } 60% {
136
+ color: #d4eef7;
137
+ } 80% {
138
+ color: #82c1ed;
139
+ } 100% {
140
+ color: #5d9cec;
141
+ }
142
+ }
143
+
144
+ @keyframes fade-in-slowly {
145
+ 0% { opacity: 0; }
146
+ 80% { opacity: 0; }
147
+ 100% { opacity: 1; }
148
+ }
149
+
150
+ @keyframes zbounce {
151
+ 0%, 100% {
152
+ transform: scale(.95, .95)
153
+ }
154
+ 50% {
155
+ transform: scale(1, 1)
156
+ }
157
+ }
@@ -0,0 +1 @@
1
+ @import "error";
@@ -0,0 +1,15 @@
1
+ module Tungsten
2
+ class ErrorsController < ActionController::Base
3
+ include Gaffe::Errors
4
+
5
+ # Override 'error' layout
6
+ layout 'tungsten/errors'
7
+
8
+ # Render the correct template based on the exception "standard" code.
9
+ # Eg. For a 404 error, the `errors/not_found` template will be rendered.
10
+ def show
11
+ # Here, the `@exception` variable contains the original raised error
12
+ render "tungsten/errors/#{@rescue_response}", status: @status_code
13
+ end
14
+ end
15
+ end
@@ -41,5 +41,9 @@ module Tungsten
41
41
  keywords ? content_for(:keywords) { keywords } : content_for(:keywords).presence
42
42
  end
43
43
 
44
+ def pin_tab_icon(path, color='black')
45
+ %Q{<link rel="mask-icon" mask href="#{path}" color="#{color}">}.html_safe
46
+ end
47
+
44
48
  end
45
- end
49
+ end
@@ -0,0 +1,9 @@
1
+ module Tungsten
2
+ module ErrorHelper
3
+ def error_code_svg(code)
4
+ code.to_s.split('').map do |num|
5
+ render partial: "shared/tungsten/num", locals: { num: num.to_i }
6
+ end.join('').html_safe
7
+ end
8
+ end
9
+ end
@@ -19,6 +19,9 @@ html
19
19
  / Favicon
20
20
  - if content_for?(:favicon)
21
21
  = yield :favicon
22
+ - else
23
+ = favicon_tag 'favicon.ico'
24
+ = pin_tab_icon_tag 'logo.svg', '#10A6DB'
22
25
 
23
26
  = javascript_tag "tungsten"
24
27
  = yield :javascripts
@@ -0,0 +1,25 @@
1
+ doctype html
2
+ html.error-page class="error-#{@status_code}"
3
+ head
4
+
5
+ / Document Settings
6
+ meta charset="utf-8"
7
+ meta http-equiv="X-UA-Compatible" content="IE=edge"
8
+ = csrf_meta_tags
9
+
10
+ / Page Meta
11
+ title = "Error #{@status_code}: #{@rescue_response.to_s.humanize}"
12
+ / Referrer
13
+ meta name="referrer" content="origin"
14
+
15
+ / Mobile
16
+ meta name="HandheldFriendly" content="True"
17
+ meta name="viewport" content="width=device-width, initial-scale=1.0"
18
+
19
+ = stylesheet_link_tag('application')
20
+
21
+ body
22
+ = yield
23
+ - if content_for? :footer
24
+ footer
25
+ =yield :footer
@@ -0,0 +1,90 @@
1
+ <svg class="error-number" width="100px" viewBox="0 0 143 104" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414">
2
+ - unless num == 1
3
+ <g class="error-box">
4
+ <path class="error-box-bg" d="M53.725,43.28l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
5
+ <path class="error-box-top" d="M53.725,2.885l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
6
+ <path class="error-box-side" d="M37.482,31.018l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
7
+ </g>
8
+ - unless [1,5,6].include? num
9
+ <g class="error-box">
10
+ <path class="error-box-bg" d="M71.217,53.379l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
11
+ <path class="error-box-top" d="M71.217,12.984l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
12
+ <path class="error-box-side" d="M54.974,41.117l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
13
+ </g>
14
+ - unless num == 1
15
+ <g class="error-box">
16
+ <path class="error-box-bg" d="M88.709,63.478l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
17
+ <path class="error-box-top" d="M88.709,23.083l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
18
+ <path class="error-box-side" d="M72.466,51.216l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
19
+ </g>
20
+ - unless [1,2].include? num
21
+ <g class="error-box">
22
+ <path class="error-box-bg" d="M106.201,73.577l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
23
+ <path class="error-box-top" d="M106.201,33.182l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
24
+ <path class="error-box-side" d="M89.958,61.315l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
25
+ </g>
26
+ <g class="error-box">
27
+ <path class="error-box-bg" d="M123.693,83.676l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
28
+ <path class="error-box-top" d="M123.693,43.281l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
29
+ <path class="error-box-side" d="M107.45,71.414l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
30
+ </g>
31
+ - unless [4].include? num
32
+ <g class="error-box">
33
+ <path class="error-box-bg" d="M36.219,53.403l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
34
+ <path class="error-box-top" d="M36.219,13.008l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
35
+ <path class="error-box-side" d="M19.976,41.141l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
36
+ </g>
37
+ - unless [0,2,3,4,5,6,7,8,9].include? num
38
+ <g class="error-box">
39
+ <path class="error-box-bg" d="M53.725,63.478l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
40
+ <path class="error-box-top" d="M53.725,23.083l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
41
+ <path class="error-box-side" d="M37.482,51.216l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
42
+ </g>
43
+ - unless [0,7].include? num
44
+ <g class="error-box">
45
+ <path class="error-box-bg" d="M71.203,73.601l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
46
+ <path class="error-box-top" d="M71.203,33.206l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
47
+ <path class="error-box-side" d="M54.96,61.339l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
48
+ </g>
49
+ - unless [0,2,3,4,5,6,7,8,9].include? num
50
+ <g class="error-box">
51
+ <path class="error-box-bg" d="M88.709,83.676l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
52
+ <path class="error-box-top" d="M88.709,43.281l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
53
+ <path class="error-box-side" d="M72.466,71.414l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
54
+ </g>
55
+ - unless [4,7].include? num
56
+ <g class="error-box">
57
+ <path class="error-box-bg" d="M106.187,93.799l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
58
+ <path class="error-box-top" d="M106.187,53.404l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
59
+ <path class="error-box-side" d="M89.944,81.537l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
60
+ </g>
61
+ <g class="error-box">
62
+ <path class="error-box-bg" d="M18.741,63.478l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
63
+ <path class="error-box-top" d="M18.741,23.083l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
64
+ <path class="error-box-side" d="M2.498,51.216l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
65
+ </g>
66
+ - unless [1,2,3,7].include? num
67
+ <g class="error-box">
68
+ <path class="error-box-bg" d="M36.233,73.577l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
69
+ <path class="error-box-top" d="M36.233,33.182l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
70
+ <path class="error-box-side" d="M19.99,61.315l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
71
+ </g>
72
+ - unless [1,7].include? num
73
+ <g class="error-box">
74
+ <path class="error-box-bg" d="M53.725,83.676l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
75
+ <path class="error-box-top" d="M53.725,43.281l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
76
+ <path class="error-box-side" d="M37.482,71.414l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
77
+ </g>
78
+ - unless [1,3,4,5,7,9].include? num
79
+ <g class="error-box">
80
+ <path class="error-box-bg" d="M71.217,93.775l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
81
+ <path class="error-box-top" d="M71.217,53.38l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
82
+ <path class="error-box-side" d="M54.974,81.513l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
83
+ </g>
84
+ - unless [4,7].include? num
85
+ <g class="error-box">
86
+ <path class="error-box-bg" d="M88.709,103.874l-18.741,-10.82l0,-21.64l18.741,-10.82l18.741,10.82l0,21.64l-18.741,10.82Z" />
87
+ <path class="error-box-top" d="M88.709,63.479l14.993,8.656l-14.993,8.657l-14.994,-8.657l14.994,-8.656Z" fill="#fff" />
88
+ <path class="error-box-side" d="M72.466,91.612l0.001,-17.313l14.993,8.656l0,17.314l-14.994,-8.657l0,0Z" fill="#888" />
89
+ </g>
90
+ </svg>
@@ -0,0 +1,5 @@
1
+ .error-code
2
+ .error-svgs= error_code_svg @status_code
3
+ .error-message
4
+ h1= @rescue_response.humanize.titlecase
5
+ p Sorry, our server cannot process this request.
@@ -0,0 +1,5 @@
1
+ .error-code
2
+ .error-svgs= error_code_svg @status_code
3
+ .error-message
4
+ h1= @rescue_response.humanize.titlecase
5
+ p Ah, ah, ah. You didn't say the magic word.