tungsten 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.