rambulance 0.4.0 → 0.5.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +45 -12
- data/Appraisals +10 -2
- data/CHANGELOG.md +51 -0
- data/README.md +6 -11
- data/gemfiles/rails_32.gemfile +2 -2
- data/gemfiles/rails_40.gemfile +2 -2
- data/gemfiles/rails_41.gemfile +2 -2
- data/gemfiles/rails_42.gemfile +2 -2
- data/gemfiles/rails_50.gemfile +1 -1
- data/gemfiles/rails_51.gemfile +9 -0
- data/gemfiles/rails_edge.gemfile +3 -3
- data/lib/generators/rambulance/templates/exceptions_app.rb +4 -1
- data/lib/generators/rambulance/templates/views/bad_request.html.erb +1 -1
- data/lib/generators/rambulance/templates/views/forbidden.html.erb +1 -1
- data/lib/generators/rambulance/templates/views/internal_server_error.html.erb +1 -1
- data/lib/generators/rambulance/templates/views/not_found.html.erb +1 -1
- data/lib/generators/rambulance/templates/views/unprocessable_entity.html.erb +1 -1
- data/lib/rambulance/exceptions_app.rb +6 -0
- data/lib/rambulance/version.rb +1 -1
- data/rambulance.gemspec +1 -3
- data/test/fake_app/rails_app.rb +17 -12
- data/test/requests/error_page_test.rb +45 -0
- data/test/test_helper.rb +1 -0
- metadata +5 -14
- data/.rspec +0 -2
- data/lib/generators/rambulance/templates/views/bad_request.html.haml +0 -54
- data/lib/generators/rambulance/templates/views/bad_request.html.slim +0 -8
- data/lib/generators/rambulance/templates/views/forbidden.html.haml +0 -54
- data/lib/generators/rambulance/templates/views/forbidden.html.slim +0 -8
- data/lib/generators/rambulance/templates/views/internal_server_error.html.haml +0 -54
- data/lib/generators/rambulance/templates/views/internal_server_error.html.slim +0 -8
- data/lib/generators/rambulance/templates/views/not_found.html.haml +0 -55
- data/lib/generators/rambulance/templates/views/not_found.html.slim +0 -10
- data/lib/generators/rambulance/templates/views/unprocessable_entity.html.haml +0 -55
- data/lib/generators/rambulance/templates/views/unprocessable_entity.html.slim +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 41a24d609992f2ce07071bb783b231bbc358c66f
|
|
4
|
+
data.tar.gz: bee5f47a4df8ed67999da43b29652b613f7fab02
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 216306d2a9b1f76ececd7cf671823f8731f7f7bf4a99c90eb869b20b77fbc6e587d3a4806e3ab23610fe1ad66739d9fa6c06d2e2de80c4e7e34e72efd0bff3d0
|
|
7
|
+
data.tar.gz: c51fa8b131ab5fd77b00d73c7a6d85db0dc63bf8fe298643088b36714281d3e787bd1cc8085c798a0498b3ece725dfc35559435420dbca74e26bd97f839d661f
|
data/.travis.yml
CHANGED
|
@@ -3,14 +3,19 @@ script: bundle exec rake
|
|
|
3
3
|
cache: bundler
|
|
4
4
|
sudo: false
|
|
5
5
|
|
|
6
|
+
before_install:
|
|
7
|
+
- gem update --system
|
|
8
|
+
- gem pristine bundler
|
|
9
|
+
|
|
6
10
|
rvm:
|
|
7
|
-
- 1.9.3
|
|
8
11
|
- 2.0.0
|
|
9
12
|
- 2.1
|
|
10
|
-
- 2.2.
|
|
11
|
-
- 2.3.
|
|
13
|
+
- 2.2.9
|
|
14
|
+
- 2.3.6
|
|
15
|
+
- 2.4.3
|
|
16
|
+
- 2.5.0
|
|
12
17
|
- ruby-head
|
|
13
|
-
- jruby
|
|
18
|
+
- jruby-9.1.15.0
|
|
14
19
|
- jruby-head
|
|
15
20
|
|
|
16
21
|
gemfile:
|
|
@@ -19,32 +24,60 @@ gemfile:
|
|
|
19
24
|
- gemfiles/rails_41.gemfile
|
|
20
25
|
- gemfiles/rails_42.gemfile
|
|
21
26
|
- gemfiles/rails_50.gemfile
|
|
27
|
+
- gemfiles/rails_51.gemfile
|
|
22
28
|
- gemfiles/rails_edge.gemfile
|
|
23
29
|
|
|
24
30
|
matrix:
|
|
25
31
|
exclude:
|
|
26
|
-
- rvm: 1.9.3
|
|
27
|
-
gemfile: gemfiles/rails_50.gemfile
|
|
28
|
-
- rvm: 1.9.3
|
|
29
|
-
gemfile: gemfiles/rails_edge.gemfile
|
|
30
32
|
- rvm: 2.0.0
|
|
31
33
|
gemfile: gemfiles/rails_50.gemfile
|
|
34
|
+
- rvm: 2.0.0
|
|
35
|
+
gemfile: gemfiles/rails_51.gemfile
|
|
32
36
|
- rvm: 2.0.0
|
|
33
37
|
gemfile: gemfiles/rails_edge.gemfile
|
|
34
38
|
- rvm: 2.1
|
|
35
39
|
gemfile: gemfiles/rails_50.gemfile
|
|
40
|
+
- rvm: 2.1
|
|
41
|
+
gemfile: gemfiles/rails_51.gemfile
|
|
36
42
|
- rvm: 2.1
|
|
37
43
|
gemfile: gemfiles/rails_edge.gemfile
|
|
38
|
-
- rvm: 2.2.
|
|
44
|
+
- rvm: 2.2.9
|
|
45
|
+
gemfile: gemfiles/rails_32.gemfile
|
|
46
|
+
- rvm: 2.3.6
|
|
47
|
+
gemfile: gemfiles/rails_32.gemfile
|
|
48
|
+
- rvm: 2.4.3
|
|
39
49
|
gemfile: gemfiles/rails_32.gemfile
|
|
40
|
-
- rvm: 2.3
|
|
50
|
+
- rvm: 2.4.3
|
|
51
|
+
gemfile: gemfiles/rails_40.gemfile
|
|
52
|
+
- rvm: 2.4.3
|
|
53
|
+
gemfile: gemfiles/rails_41.gemfile
|
|
54
|
+
- rvm: 2.5.0
|
|
41
55
|
gemfile: gemfiles/rails_32.gemfile
|
|
56
|
+
- rvm: 2.5.0
|
|
57
|
+
gemfile: gemfiles/rails_40.gemfile
|
|
58
|
+
- rvm: 2.5.0
|
|
59
|
+
gemfile: gemfiles/rails_41.gemfile
|
|
42
60
|
- rvm: ruby-head
|
|
43
61
|
gemfile: gemfiles/rails_32.gemfile
|
|
62
|
+
- rvm: ruby-head
|
|
63
|
+
gemfile: gemfiles/rails_40.gemfile
|
|
64
|
+
- rvm: ruby-head
|
|
65
|
+
gemfile: gemfiles/rails_41.gemfile
|
|
66
|
+
- rvm: jruby-9.1.15.0
|
|
67
|
+
gemfile: gemfiles/rails_32.gemfile
|
|
68
|
+
- rvm: jruby-9.1.15.0
|
|
69
|
+
gemfile: gemfiles/rails_40.gemfile
|
|
70
|
+
- rvm: jruby-9.1.15.0
|
|
71
|
+
gemfile: gemfiles/rails_41.gemfile
|
|
72
|
+
- rvm: jruby-head
|
|
73
|
+
gemfile: gemfiles/rails_32.gemfile
|
|
74
|
+
- rvm: jruby-head
|
|
75
|
+
gemfile: gemfiles/rails_40.gemfile
|
|
76
|
+
- rvm: jruby-head
|
|
77
|
+
gemfile: gemfiles/rails_41.gemfile
|
|
44
78
|
allow_failures:
|
|
45
79
|
- rvm: ruby-head
|
|
46
|
-
- rvm: jruby
|
|
80
|
+
- rvm: jruby-9.1.15.0
|
|
47
81
|
- rvm: jruby-head
|
|
48
82
|
- gemfile: gemfiles/rails_edge.gemfile
|
|
49
83
|
- gemfile: gemfiles/rails_32.gem
|
|
50
|
-
fast_finish: true
|
data/Appraisals
CHANGED
|
@@ -3,6 +3,7 @@ appraise "rails_32" do
|
|
|
3
3
|
gem "actionpack", "~> 3.2.0"
|
|
4
4
|
gem "railties", "~> 3.2.0"
|
|
5
5
|
gem "test-unit" if RUBY_VERSION >= "2.2.0"
|
|
6
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
6
7
|
end
|
|
7
8
|
|
|
8
9
|
appraise "rails_40" do
|
|
@@ -10,30 +11,37 @@ appraise "rails_40" do
|
|
|
10
11
|
gem "actionpack", "~> 4.0.0"
|
|
11
12
|
gem "railties", "~> 4.0.0"
|
|
12
13
|
gem "test-unit" if RUBY_VERSION >= "2.2.0"
|
|
14
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
appraise "rails_41" do
|
|
16
18
|
gem "activesupport", "~> 4.1.0"
|
|
17
19
|
gem "actionpack", "~> 4.1.0"
|
|
18
20
|
gem "railties", "~> 4.1.0"
|
|
21
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
19
22
|
end
|
|
20
23
|
|
|
21
24
|
appraise "rails_42" do
|
|
22
25
|
gem "activesupport", "~> 4.2.0"
|
|
23
26
|
gem "actionpack", "~> 4.2.0"
|
|
24
27
|
gem "railties", "~> 4.2.0"
|
|
25
|
-
|
|
26
28
|
gem 'minitest', '~> 5.3.4'
|
|
29
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
27
30
|
end
|
|
28
31
|
|
|
29
32
|
appraise "rails_50" do
|
|
30
33
|
gem "activesupport", "~> 5.0.0"
|
|
31
34
|
gem "actionpack", "~> 5.0.0"
|
|
32
35
|
gem "railties", "~> 5.0.0"
|
|
33
|
-
|
|
34
36
|
gem 'minitest', '~> 5.3.4'
|
|
35
37
|
end
|
|
36
38
|
|
|
39
|
+
appraise "rails_51" do
|
|
40
|
+
gem "activesupport", "~> 5.1.0"
|
|
41
|
+
gem "actionpack", "~> 5.1.0"
|
|
42
|
+
gem "railties", "~> 5.1.0"
|
|
43
|
+
end
|
|
44
|
+
|
|
37
45
|
appraise "rails_edge" do
|
|
38
46
|
git 'git://github.com/rails/rails.git' do
|
|
39
47
|
gem "activesupport", require: 'active_support'
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
## [v0.4.0](https://github.com/yuki24/rambulance/tree/v0.4.0)
|
|
2
|
+
|
|
3
|
+
_<sup>released at 2016-10-12 02:25:55 UTC</sup>_
|
|
4
|
+
|
|
5
|
+
- Added support for Rails 5 and edge
|
|
6
|
+
- Added the ability to use helper methods in error templates([@willnet](https://github.com/willnet), [#37](https://github.com/yuki24/rambulance/pull/37))
|
|
7
|
+
|
|
8
|
+
## [v0.3.1](https://github.com/yuki24/rambulance/tree/v0.3.1)
|
|
9
|
+
|
|
10
|
+
_<sup>released at 2015-05-18 01:53:59 UTC</sup>_
|
|
11
|
+
|
|
12
|
+
- Added slim support ([@liubin](https://github.com/liubin), [#20](https://github.com/yuki24/rambulance/pull/20))
|
|
13
|
+
- `rails g rambulance:install` no longer generates jbuilder templates if it's undefined
|
|
14
|
+
- The exceptions app no longer attempts to render layouts when the request format is json
|
|
15
|
+
- Now `rails g rambulance:install` always copies `application.html.erb` to `error.html.erb` again
|
|
16
|
+
- **incompatible change** : `error_layout` option for the install command has been removed in favor of the change above
|
|
17
|
+
|
|
18
|
+
## [v0.3.0](https://github.com/yuki24/rambulance/tree/v0.3.0)
|
|
19
|
+
|
|
20
|
+
_<sup>released at 2015-01-23 13:42:35 UTC</sup>_
|
|
21
|
+
|
|
22
|
+
- Added 2 helper methods `#exception` and `#status_in_words` that you can use in views
|
|
23
|
+
|
|
24
|
+
## [v0.2.0](https://github.com/yuki24/rambulance/tree/v0.2.0)
|
|
25
|
+
|
|
26
|
+
_<sup>released at 2014-09-18 03:38:18 UTC</sup>_
|
|
27
|
+
|
|
28
|
+
- Add support for Rails 4.2 beta
|
|
29
|
+
- Do not copy application.html.erb when `rails g rambulance:install` [[@kenn](https://github.com/kenn), [#5](https://github.com/yuki24/rambulance/issues/5)]
|
|
30
|
+
- Capture `ActionController::BadRequest` before processing action
|
|
31
|
+
- Dynamically generate exception/status mapping in initializer
|
|
32
|
+
- Add option to copy `application.html.erb` for error page layout
|
|
33
|
+
|
|
34
|
+
## [v0.1.2](https://github.com/yuki24/rambulance/tree/v0.1.2)
|
|
35
|
+
|
|
36
|
+
_<sup>released at 2014-09-05 12:22:37 UTC</sup>_
|
|
37
|
+
|
|
38
|
+
- Fixed a bug where changing config.layout\_name doesn't actually switch layout [[@kenn](https://github.com/kenn), [#4](https://github.com/yuki24/rambulance/issues/4)]
|
|
39
|
+
- Exceptions app now refers to `app/views/#{config.view_path}` by default
|
|
40
|
+
|
|
41
|
+
## [v0.1.1](https://github.com/yuki24/rambulance/tree/v0.1.1)
|
|
42
|
+
|
|
43
|
+
_<sup>released at 2014-06-22 02:39:06 UTC</sup>_
|
|
44
|
+
|
|
45
|
+
- Fixed a bug where installer command doesn't work
|
|
46
|
+
|
|
47
|
+
## [v0.1.0](https://github.com/yuki24/rambulance/tree/v0.1.0)
|
|
48
|
+
|
|
49
|
+
_<sup>released at 2014-06-20 01:00:02 UTC</sup>_
|
|
50
|
+
|
|
51
|
+
- First release of rambulance!
|
data/README.md
CHANGED
|
@@ -6,11 +6,11 @@ Rambulance provides a simple and safe way to dynamically render error pages for
|
|
|
6
6
|
|
|
7
7
|
### Simple and Safe
|
|
8
8
|
|
|
9
|
-
Rambulance's exceptions app is simple, skinny and well-tested. It inherits `ActionController::Base`, so it works fine even if your `ApplicationController` has an issue.
|
|
9
|
+
Rambulance's exceptions app is simple, skinny and well-tested. It inherits from `ActionController::Base`, so it works fine even if your `ApplicationController` has an issue.
|
|
10
10
|
|
|
11
11
|
### Flexible
|
|
12
12
|
|
|
13
|
-
You have full control of
|
|
13
|
+
You have full control of showing a specific error page for a specific exception. It can also render json responses. It even provides a way to create a custom exceptions app.
|
|
14
14
|
|
|
15
15
|
### Easy installation and development
|
|
16
16
|
|
|
@@ -30,12 +30,7 @@ And then execute:
|
|
|
30
30
|
$ rails g rambulance:install
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
or
|
|
34
|
-
```
|
|
35
|
-
$ rails g rambulance:install -e slim
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Rambulance now support `erb`, `haml`, `slim` template engines, if you don't specify the `-e` option, erb will be used as default.
|
|
33
|
+
Rambulance only has support for `erb`. If you would like to use haml or slim templates, please see [How to Convert Your `.erb` to `.slim`](https://github.com/slim-template/slim/wiki/Template-Converters-ERB-to-SLIM) or [html2haml](https://github.com/haml/html2haml).
|
|
39
34
|
|
|
40
35
|
Now you can start editing templates like `app/views/errors/not_found.html.erb`. Edit, run `rails server` and open [`localhost:3000/rambulance/not_found`](http://localhost:3000/rambulance/not_found)!
|
|
41
36
|
|
|
@@ -103,10 +98,10 @@ It'll generate your own custom exceptions app. You can use whatever techniques y
|
|
|
103
98
|
|
|
104
99
|
## Supported Versions
|
|
105
100
|
|
|
106
|
-
* Ruby
|
|
107
|
-
* Rails 3.2, 4.0, 4.1, 4.2 and edge
|
|
101
|
+
* Ruby 2.0.0, 2.1, 2.2, 2.3, JRuby 1.7.19, JRuby head, Rubinius 2.4.1 and 2.5.3
|
|
102
|
+
* Rails 3.2, 4.0, 4.1, 4.2, 5.0 and edge
|
|
108
103
|
|
|
109
|
-
Rambulance doesn't work with Rails 3.1 and below since they don't provide
|
|
104
|
+
Rambulance doesn't work with Rails 3.1 and below since they don't provide a way to use a custom exceptions app.
|
|
110
105
|
|
|
111
106
|
## Contributing
|
|
112
107
|
|
data/gemfiles/rails_32.gemfile
CHANGED
|
@@ -6,6 +6,6 @@ gem "activesupport", "~> 3.2.0"
|
|
|
6
6
|
gem "actionpack", "~> 3.2.0"
|
|
7
7
|
gem "railties", "~> 3.2.0"
|
|
8
8
|
gem "test-unit" if RUBY_VERSION >= "2.2.0"
|
|
9
|
-
gem
|
|
9
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
10
10
|
|
|
11
|
-
gemspec :
|
|
11
|
+
gemspec path: "../"
|
data/gemfiles/rails_40.gemfile
CHANGED
|
@@ -6,6 +6,6 @@ gem "activesupport", "~> 4.0.0"
|
|
|
6
6
|
gem "actionpack", "~> 4.0.0"
|
|
7
7
|
gem "railties", "~> 4.0.0"
|
|
8
8
|
gem "test-unit" if RUBY_VERSION >= "2.2.0"
|
|
9
|
-
gem
|
|
9
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
10
10
|
|
|
11
|
-
gemspec :
|
|
11
|
+
gemspec path: "../"
|
data/gemfiles/rails_41.gemfile
CHANGED
|
@@ -5,6 +5,6 @@ source "https://rubygems.org"
|
|
|
5
5
|
gem "activesupport", "~> 4.1.0"
|
|
6
6
|
gem "actionpack", "~> 4.1.0"
|
|
7
7
|
gem "railties", "~> 4.1.0"
|
|
8
|
-
gem
|
|
8
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
9
9
|
|
|
10
|
-
gemspec :
|
|
10
|
+
gemspec path: "../"
|
data/gemfiles/rails_42.gemfile
CHANGED
|
@@ -6,6 +6,6 @@ gem "activesupport", "~> 4.2.0"
|
|
|
6
6
|
gem "actionpack", "~> 4.2.0"
|
|
7
7
|
gem "railties", "~> 4.2.0"
|
|
8
8
|
gem "minitest", "~> 5.3.4"
|
|
9
|
-
gem
|
|
9
|
+
gem 'nokogiri', '1.6.8.1' if RUBY_VERSION == "2.0.0"
|
|
10
10
|
|
|
11
|
-
gemspec :
|
|
11
|
+
gemspec path: "../"
|
data/gemfiles/rails_50.gemfile
CHANGED
data/gemfiles/rails_edge.gemfile
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
source "https://rubygems.org"
|
|
4
4
|
|
|
5
5
|
git "git://github.com/rails/rails.git" do
|
|
6
|
-
gem "activesupport", :
|
|
7
|
-
gem "actionpack", :
|
|
6
|
+
gem "activesupport", require: "active_support"
|
|
7
|
+
gem "actionpack", require: "action_pack"
|
|
8
8
|
gem "railties"
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
gem "minitest", "~> 5.3.4"
|
|
12
12
|
|
|
13
|
-
gemspec :
|
|
13
|
+
gemspec path: "../"
|
|
@@ -60,6 +60,12 @@ module Rambulance
|
|
|
60
60
|
request.env["MALFORMED_QUERY_STRING"], request.env["QUERY_STRING"] = request.env["QUERY_STRING"], ""
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
+
begin
|
|
64
|
+
request.POST
|
|
65
|
+
rescue BAD_REQUEST_EXCEPTION, ArgumentError
|
|
66
|
+
request.env["MALFORMED_BODY"], request.env["rack.input"] = request.env["rack.input"], StringIO.new
|
|
67
|
+
end
|
|
68
|
+
|
|
63
69
|
super
|
|
64
70
|
end
|
|
65
71
|
|
data/lib/rambulance/version.rb
CHANGED
data/rambulance.gemspec
CHANGED
|
@@ -12,10 +12,8 @@ Gem::Specification.new do |spec|
|
|
|
12
12
|
spec.description = %q{Rambulance provides a simple and safe way to dynamically generate error pages.}
|
|
13
13
|
spec.homepage = "http://github.com/yuki24/rambulance"
|
|
14
14
|
spec.license = "MIT"
|
|
15
|
-
|
|
16
15
|
spec.files = `git ls-files -z`.split("\x0")
|
|
17
|
-
spec.
|
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
16
|
+
spec.test_files = spec.files.grep(%r{^test/})
|
|
19
17
|
spec.require_paths = ["lib"]
|
|
20
18
|
|
|
21
19
|
spec.add_dependency "activesupport"
|
data/test/fake_app/rails_app.rb
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
require 'jbuilder'
|
|
2
2
|
|
|
3
3
|
# config
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
app.config.autoload_paths += ["#{app.config.root}/lib"] if ENV["CUSTOM_EXCEPTIONS_APP"]
|
|
4
|
+
class TestApp < Rails::Application
|
|
5
|
+
config.secret_token = '964ab2f0fbbb68bc36f3cc487ca296bb8555fac50627924024c245a1599e5265'
|
|
6
|
+
config.session_store :cookie_store, :key => '_myapp_session'
|
|
7
|
+
config.active_support.deprecation = :log
|
|
8
|
+
config.eager_load = false
|
|
9
|
+
config.root = File.dirname(__FILE__)
|
|
10
|
+
config.autoload_paths += ["#{config.root}/lib"] if ENV["CUSTOM_EXCEPTIONS_APP"]
|
|
11
|
+
end
|
|
13
12
|
Rails.backtrace_cleaner.remove_silencers!
|
|
14
|
-
|
|
13
|
+
Rails.application.initialize!
|
|
15
14
|
|
|
16
15
|
# routes
|
|
17
|
-
|
|
16
|
+
Rails.application.routes.draw do
|
|
18
17
|
resources :users
|
|
19
18
|
end
|
|
20
19
|
|
|
@@ -63,7 +62,13 @@ class UsersController < ApplicationController
|
|
|
63
62
|
raise ActionController::InvalidAuthenticityToken
|
|
64
63
|
end
|
|
65
64
|
|
|
66
|
-
def create
|
|
65
|
+
def create
|
|
66
|
+
render text: 'created.', status: 201
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def update
|
|
70
|
+
render text: 'updated.', status: 201
|
|
71
|
+
end
|
|
67
72
|
|
|
68
73
|
def edit
|
|
69
74
|
raise ForbiddenException
|
|
@@ -41,6 +41,51 @@ class ErrorPageTest < ActionDispatch::IntegrationTest
|
|
|
41
41
|
assert_includes page.body, "Page not found."
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
if Rails.version < '4.2.0'
|
|
45
|
+
# Versions eariler than 4.2 use `Rack::MethodOverride` that calls the
|
|
46
|
+
# request#POST method. It is configured to be called before the request
|
|
47
|
+
# reaches Rails' ShowException, and it's impossible to capture from it.
|
|
48
|
+
#
|
|
49
|
+
# Since there is no good solution for us to fix it, I will consider it
|
|
50
|
+
# to be a "won't fix" edge case and leave a test case here.
|
|
51
|
+
test 'raises ArgumentError when posting malformed body' do
|
|
52
|
+
assert_raises ArgumentError do
|
|
53
|
+
page.driver.post '/users', 'email=abcd%%72900'
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
elsif Rails.version.start_with?('4.2')
|
|
57
|
+
test 'displays the 201 page' do
|
|
58
|
+
page.driver.post '/users', 'email=abcd%%72900'
|
|
59
|
+
|
|
60
|
+
assert_equal 201, page.status_code
|
|
61
|
+
assert_includes page.body, "created."
|
|
62
|
+
end
|
|
63
|
+
else
|
|
64
|
+
test 'displays the 400 page for POST request with malformed body' do
|
|
65
|
+
page.driver.post '/users', 'email=abcd%%72900'
|
|
66
|
+
|
|
67
|
+
assert_equal 400, page.status_code
|
|
68
|
+
assert_includes page.body, "Error page"
|
|
69
|
+
assert_includes page.body, "Bad request."
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
test 'displays the 400 page for PUT request with malformed body' do
|
|
73
|
+
page.driver.put '/users/1', 'email=abcd%%72900'
|
|
74
|
+
|
|
75
|
+
assert_equal 400, page.status_code
|
|
76
|
+
assert_includes page.body, "Error page"
|
|
77
|
+
assert_includes page.body, "Bad request."
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
test 'displays the 404 page for request to non-existing page with malformed body' do
|
|
81
|
+
page.driver.post '/doesnt_exist', 'email=abcd%%72900'
|
|
82
|
+
|
|
83
|
+
assert_equal 404, page.status_code
|
|
84
|
+
assert_includes page.body, "Error page"
|
|
85
|
+
assert_includes page.body, "Page not found."
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
44
89
|
test 'displays the 403 page for ForbiddenException' do
|
|
45
90
|
visit '/users/1/edit'
|
|
46
91
|
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rambulance
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yuki Nishijima
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-01-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -145,9 +145,9 @@ extensions: []
|
|
|
145
145
|
extra_rdoc_files: []
|
|
146
146
|
files:
|
|
147
147
|
- ".gitignore"
|
|
148
|
-
- ".rspec"
|
|
149
148
|
- ".travis.yml"
|
|
150
149
|
- Appraisals
|
|
150
|
+
- CHANGELOG.md
|
|
151
151
|
- Gemfile
|
|
152
152
|
- LICENSE.txt
|
|
153
153
|
- README.md
|
|
@@ -157,30 +157,21 @@ files:
|
|
|
157
157
|
- gemfiles/rails_41.gemfile
|
|
158
158
|
- gemfiles/rails_42.gemfile
|
|
159
159
|
- gemfiles/rails_50.gemfile
|
|
160
|
+
- gemfiles/rails_51.gemfile
|
|
160
161
|
- gemfiles/rails_edge.gemfile
|
|
161
162
|
- lib/generators/rambulance/exceptions_app_generator.rb
|
|
162
163
|
- lib/generators/rambulance/install_generator.rb
|
|
163
164
|
- lib/generators/rambulance/templates/exceptions_app.rb
|
|
164
165
|
- lib/generators/rambulance/templates/rambulance.rb
|
|
165
166
|
- lib/generators/rambulance/templates/views/bad_request.html.erb
|
|
166
|
-
- lib/generators/rambulance/templates/views/bad_request.html.haml
|
|
167
|
-
- lib/generators/rambulance/templates/views/bad_request.html.slim
|
|
168
167
|
- lib/generators/rambulance/templates/views/bad_request.json.jbuilder
|
|
169
168
|
- lib/generators/rambulance/templates/views/forbidden.html.erb
|
|
170
|
-
- lib/generators/rambulance/templates/views/forbidden.html.haml
|
|
171
|
-
- lib/generators/rambulance/templates/views/forbidden.html.slim
|
|
172
169
|
- lib/generators/rambulance/templates/views/forbidden.json.jbuilder
|
|
173
170
|
- lib/generators/rambulance/templates/views/internal_server_error.html.erb
|
|
174
|
-
- lib/generators/rambulance/templates/views/internal_server_error.html.haml
|
|
175
|
-
- lib/generators/rambulance/templates/views/internal_server_error.html.slim
|
|
176
171
|
- lib/generators/rambulance/templates/views/internal_server_error.json.jbuilder
|
|
177
172
|
- lib/generators/rambulance/templates/views/not_found.html.erb
|
|
178
|
-
- lib/generators/rambulance/templates/views/not_found.html.haml
|
|
179
|
-
- lib/generators/rambulance/templates/views/not_found.html.slim
|
|
180
173
|
- lib/generators/rambulance/templates/views/not_found.json.jbuilder
|
|
181
174
|
- lib/generators/rambulance/templates/views/unprocessable_entity.html.erb
|
|
182
|
-
- lib/generators/rambulance/templates/views/unprocessable_entity.html.haml
|
|
183
|
-
- lib/generators/rambulance/templates/views/unprocessable_entity.html.slim
|
|
184
175
|
- lib/generators/rambulance/templates/views/unprocessable_entity.json.jbuilder
|
|
185
176
|
- lib/rambulance.rb
|
|
186
177
|
- lib/rambulance/exceptions_app.rb
|
|
@@ -221,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
221
212
|
version: '0'
|
|
222
213
|
requirements: []
|
|
223
214
|
rubyforge_project:
|
|
224
|
-
rubygems_version: 2.
|
|
215
|
+
rubygems_version: 2.6.14
|
|
225
216
|
signing_key:
|
|
226
217
|
specification_version: 4
|
|
227
218
|
summary: Simple and safe way to dynamically generate error pages
|
data/.rspec
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
:css
|
|
2
|
-
div.dialog {
|
|
3
|
-
color: #2E2F30;
|
|
4
|
-
text-align: center;
|
|
5
|
-
font-family: arial, sans-serif;
|
|
6
|
-
margin: 0;
|
|
7
|
-
width: 95%;
|
|
8
|
-
max-width: 33em;
|
|
9
|
-
margin: 4em auto;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
div.dialog > div {
|
|
13
|
-
border: 1px solid #CCC;
|
|
14
|
-
border-right-color: #999;
|
|
15
|
-
border-left-color: #999;
|
|
16
|
-
border-bottom-color: #BBB;
|
|
17
|
-
border-top: #B00100 solid 4px;
|
|
18
|
-
border-top-left-radius: 9px;
|
|
19
|
-
border-top-right-radius: 9px;
|
|
20
|
-
background-color: white;
|
|
21
|
-
padding: 7px 12% 0;
|
|
22
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
h1 {
|
|
26
|
-
font-size: 100%;
|
|
27
|
-
color: #730E15;
|
|
28
|
-
line-height: 1.5em;
|
|
29
|
-
margin: 10px 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
div.dialog p {
|
|
33
|
-
margin: 16px 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
div.dialog > p {
|
|
37
|
-
margin: 0 0 1em;
|
|
38
|
-
padding: 1em;
|
|
39
|
-
background-color: #F7F7F7;
|
|
40
|
-
border: 1px solid #CCC;
|
|
41
|
-
border-right-color: #999;
|
|
42
|
-
border-left-color: #999;
|
|
43
|
-
border-bottom-color: #999;
|
|
44
|
-
border-bottom-left-radius: 4px;
|
|
45
|
-
border-bottom-right-radius: 4px;
|
|
46
|
-
border-top-color: #DADADA;
|
|
47
|
-
color: #666;
|
|
48
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
49
|
-
}
|
|
50
|
-
/ This file lives in app/views/errors/bad_request.html.erb
|
|
51
|
-
.dialog
|
|
52
|
-
%div
|
|
53
|
-
%h1 Bad request
|
|
54
|
-
%p The service received a incomplete request.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
style
|
|
2
|
-
| div.dialog { color: #2E2F30; text-align: center; font-family: arial, sans-serif; margin: 0; width: 95%; max-width: 33em; margin: 4em auto; } div.dialog > div { border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #BBB; border-top: #B00100 solid 4px; border-top-left-radius: 9px; border-top-right-radius: 9px; background-color: white; padding: 7px 12% 0; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); } h1 { font-size: 100%; color: #730E15; line-height: 1.5em; margin: 10px 0; } div.dialog p { margin: 16px 0; } div.dialog > p { margin: 0 0 1em; padding: 1em; background-color: #F7F7F7; border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #999; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-color: #DADADA; color: #666; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); }
|
|
3
|
-
.dialog
|
|
4
|
-
div
|
|
5
|
-
h1
|
|
6
|
-
| Bad request
|
|
7
|
-
p
|
|
8
|
-
| The service received a incomplete request.
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
:css
|
|
2
|
-
div.dialog {
|
|
3
|
-
color: #2E2F30;
|
|
4
|
-
text-align: center;
|
|
5
|
-
font-family: arial, sans-serif;
|
|
6
|
-
margin: 0;
|
|
7
|
-
width: 95%;
|
|
8
|
-
max-width: 33em;
|
|
9
|
-
margin: 4em auto;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
div.dialog > div {
|
|
13
|
-
border: 1px solid #CCC;
|
|
14
|
-
border-right-color: #999;
|
|
15
|
-
border-left-color: #999;
|
|
16
|
-
border-bottom-color: #BBB;
|
|
17
|
-
border-top: #B00100 solid 4px;
|
|
18
|
-
border-top-left-radius: 9px;
|
|
19
|
-
border-top-right-radius: 9px;
|
|
20
|
-
background-color: white;
|
|
21
|
-
padding: 7px 12% 0;
|
|
22
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
h1 {
|
|
26
|
-
font-size: 100%;
|
|
27
|
-
color: #730E15;
|
|
28
|
-
line-height: 1.5em;
|
|
29
|
-
margin: 10px 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
div.dialog p {
|
|
33
|
-
margin: 16px 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
div.dialog > p {
|
|
37
|
-
margin: 0 0 1em;
|
|
38
|
-
padding: 1em;
|
|
39
|
-
background-color: #F7F7F7;
|
|
40
|
-
border: 1px solid #CCC;
|
|
41
|
-
border-right-color: #999;
|
|
42
|
-
border-left-color: #999;
|
|
43
|
-
border-bottom-color: #999;
|
|
44
|
-
border-bottom-left-radius: 4px;
|
|
45
|
-
border-bottom-right-radius: 4px;
|
|
46
|
-
border-top-color: #DADADA;
|
|
47
|
-
color: #666;
|
|
48
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
49
|
-
}
|
|
50
|
-
/ This file lives in app/views/errors/forbidden.html.erb
|
|
51
|
-
.dialog
|
|
52
|
-
%div
|
|
53
|
-
%h1 Forbidden.
|
|
54
|
-
%p You are not authorized to access this page.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
style
|
|
2
|
-
| div.dialog { color: #2E2F30; text-align: center; font-family: arial, sans-serif; margin: 0; width: 95%; max-width: 33em; margin: 4em auto; } div.dialog > div { border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #BBB; border-top: #B00100 solid 4px; border-top-left-radius: 9px; border-top-right-radius: 9px; background-color: white; padding: 7px 12% 0; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); } h1 { font-size: 100%; color: #730E15; line-height: 1.5em; margin: 10px 0; } div.dialog p { margin: 16px 0; } div.dialog > p { margin: 0 0 1em; padding: 1em; background-color: #F7F7F7; border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #999; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-color: #DADADA; color: #666; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); }
|
|
3
|
-
.dialog
|
|
4
|
-
div
|
|
5
|
-
h1
|
|
6
|
-
| Forbidden.
|
|
7
|
-
p
|
|
8
|
-
| You are not authorized to access this page.
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
:css
|
|
2
|
-
div.dialog {
|
|
3
|
-
color: #2E2F30;
|
|
4
|
-
text-align: center;
|
|
5
|
-
font-family: arial, sans-serif;
|
|
6
|
-
margin: 0;
|
|
7
|
-
width: 95%;
|
|
8
|
-
max-width: 33em;
|
|
9
|
-
margin: 4em auto;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
div.dialog > div {
|
|
13
|
-
border: 1px solid #CCC;
|
|
14
|
-
border-right-color: #999;
|
|
15
|
-
border-left-color: #999;
|
|
16
|
-
border-bottom-color: #BBB;
|
|
17
|
-
border-top: #B00100 solid 4px;
|
|
18
|
-
border-top-left-radius: 9px;
|
|
19
|
-
border-top-right-radius: 9px;
|
|
20
|
-
background-color: white;
|
|
21
|
-
padding: 7px 12% 0;
|
|
22
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
h1 {
|
|
26
|
-
font-size: 100%;
|
|
27
|
-
color: #730E15;
|
|
28
|
-
line-height: 1.5em;
|
|
29
|
-
margin: 10px 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
div.dialog p {
|
|
33
|
-
margin: 16px 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
div.dialog > p {
|
|
37
|
-
margin: 0 0 1em;
|
|
38
|
-
padding: 1em;
|
|
39
|
-
background-color: #F7F7F7;
|
|
40
|
-
border: 1px solid #CCC;
|
|
41
|
-
border-right-color: #999;
|
|
42
|
-
border-left-color: #999;
|
|
43
|
-
border-bottom-color: #999;
|
|
44
|
-
border-bottom-left-radius: 4px;
|
|
45
|
-
border-bottom-right-radius: 4px;
|
|
46
|
-
border-top-color: #DADADA;
|
|
47
|
-
color: #666;
|
|
48
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
49
|
-
}
|
|
50
|
-
/ This file lives in app/views/errors/internal_server_error.html.erb
|
|
51
|
-
.dialog
|
|
52
|
-
%div
|
|
53
|
-
%h1 We're sorry, but something went wrong.
|
|
54
|
-
%p If you are the application owner check the logs for more information.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
style
|
|
2
|
-
| div.dialog { color: #2E2F30; text-align: center; font-family: arial, sans-serif; margin: 0; width: 95%; max-width: 33em; margin: 4em auto; } div.dialog > div { border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #BBB; border-top: #B00100 solid 4px; border-top-left-radius: 9px; border-top-right-radius: 9px; background-color: white; padding: 7px 12% 0; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); } h1 { font-size: 100%; color: #730E15; line-height: 1.5em; margin: 10px 0; } div.dialog p { margin: 16px 0; } div.dialog > p { margin: 0 0 1em; padding: 1em; background-color: #F7F7F7; border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #999; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-color: #DADADA; color: #666; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); }
|
|
3
|
-
.dialog
|
|
4
|
-
div
|
|
5
|
-
h1
|
|
6
|
-
| We're sorry, but something went wrong.
|
|
7
|
-
p
|
|
8
|
-
| If you are the application owner check the logs for more information.
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
:css
|
|
2
|
-
div.dialog {
|
|
3
|
-
color: #2E2F30;
|
|
4
|
-
text-align: center;
|
|
5
|
-
font-family: arial, sans-serif;
|
|
6
|
-
margin: 0;
|
|
7
|
-
width: 95%;
|
|
8
|
-
max-width: 33em;
|
|
9
|
-
margin: 4em auto;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
div.dialog > div {
|
|
13
|
-
border: 1px solid #CCC;
|
|
14
|
-
border-right-color: #999;
|
|
15
|
-
border-left-color: #999;
|
|
16
|
-
border-bottom-color: #BBB;
|
|
17
|
-
border-top: #B00100 solid 4px;
|
|
18
|
-
border-top-left-radius: 9px;
|
|
19
|
-
border-top-right-radius: 9px;
|
|
20
|
-
background-color: white;
|
|
21
|
-
padding: 7px 12% 0;
|
|
22
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
h1 {
|
|
26
|
-
font-size: 100%;
|
|
27
|
-
color: #730E15;
|
|
28
|
-
line-height: 1.5em;
|
|
29
|
-
margin: 10px 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
div.dialog p {
|
|
33
|
-
margin: 16px 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
div.dialog > p {
|
|
37
|
-
margin: 0 0 1em;
|
|
38
|
-
padding: 1em;
|
|
39
|
-
background-color: #F7F7F7;
|
|
40
|
-
border: 1px solid #CCC;
|
|
41
|
-
border-right-color: #999;
|
|
42
|
-
border-left-color: #999;
|
|
43
|
-
border-bottom-color: #999;
|
|
44
|
-
border-bottom-left-radius: 4px;
|
|
45
|
-
border-bottom-right-radius: 4px;
|
|
46
|
-
border-top-color: #DADADA;
|
|
47
|
-
color: #666;
|
|
48
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
49
|
-
}
|
|
50
|
-
/ This file lives in app/views/errors/not_found.html.erb
|
|
51
|
-
.dialog
|
|
52
|
-
%div
|
|
53
|
-
%h1 The page you were looking for doesn't exist.
|
|
54
|
-
%p You may have mistyped the address or the page may have moved.
|
|
55
|
-
%p If you are the application owner check the logs for more information.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
style
|
|
2
|
-
| div.dialog { color: #2E2F30; text-align: center; font-family: arial, sans-serif; margin: 0; width: 95%; max-width: 33em; margin: 4em auto; } div.dialog > div { border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #BBB; border-top: #B00100 solid 4px; border-top-left-radius: 9px; border-top-right-radius: 9px; background-color: white; padding: 7px 12% 0; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); } h1 { font-size: 100%; color: #730E15; line-height: 1.5em; margin: 10px 0; } div.dialog p { margin: 16px 0; } div.dialog > p { margin: 0 0 1em; padding: 1em; background-color: #F7F7F7; border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #999; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-color: #DADADA; color: #666; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); }
|
|
3
|
-
.dialog
|
|
4
|
-
div
|
|
5
|
-
h1
|
|
6
|
-
| The page you were looking for doesn't exist.
|
|
7
|
-
p
|
|
8
|
-
| You may have mistyped the address or the page may have moved.
|
|
9
|
-
p
|
|
10
|
-
| If you are the application owner check the logs for more information.
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
:css
|
|
2
|
-
div.dialog {
|
|
3
|
-
color: #2E2F30;
|
|
4
|
-
text-align: center;
|
|
5
|
-
font-family: arial, sans-serif;
|
|
6
|
-
margin: 0;
|
|
7
|
-
width: 95%;
|
|
8
|
-
max-width: 33em;
|
|
9
|
-
margin: 4em auto;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
div.dialog > div {
|
|
13
|
-
border: 1px solid #CCC;
|
|
14
|
-
border-right-color: #999;
|
|
15
|
-
border-left-color: #999;
|
|
16
|
-
border-bottom-color: #BBB;
|
|
17
|
-
border-top: #B00100 solid 4px;
|
|
18
|
-
border-top-left-radius: 9px;
|
|
19
|
-
border-top-right-radius: 9px;
|
|
20
|
-
background-color: white;
|
|
21
|
-
padding: 7px 12% 0;
|
|
22
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
h1 {
|
|
26
|
-
font-size: 100%;
|
|
27
|
-
color: #730E15;
|
|
28
|
-
line-height: 1.5em;
|
|
29
|
-
margin: 10px 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
div.dialog p {
|
|
33
|
-
margin: 16px 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
div.dialog > p {
|
|
37
|
-
margin: 0 0 1em;
|
|
38
|
-
padding: 1em;
|
|
39
|
-
background-color: #F7F7F7;
|
|
40
|
-
border: 1px solid #CCC;
|
|
41
|
-
border-right-color: #999;
|
|
42
|
-
border-left-color: #999;
|
|
43
|
-
border-bottom-color: #999;
|
|
44
|
-
border-bottom-left-radius: 4px;
|
|
45
|
-
border-bottom-right-radius: 4px;
|
|
46
|
-
border-top-color: #DADADA;
|
|
47
|
-
color: #666;
|
|
48
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
49
|
-
}
|
|
50
|
-
/ This file lives in app/views/errors/unprocessable_entity.html.erb
|
|
51
|
-
.dialog
|
|
52
|
-
%div
|
|
53
|
-
%h1 The change you wanted was rejected.
|
|
54
|
-
%p Maybe you tried to change something you didn't have access to.
|
|
55
|
-
%p If you are the application owner check the logs for more information.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
style
|
|
2
|
-
| div.dialog { color: #2E2F30; text-align: center; font-family: arial, sans-serif; margin: 0; width: 95%; max-width: 33em; margin: 4em auto; } div.dialog > div { border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #BBB; border-top: #B00100 solid 4px; border-top-left-radius: 9px; border-top-right-radius: 9px; background-color: white; padding: 7px 12% 0; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); } h1 { font-size: 100%; color: #730E15; line-height: 1.5em; margin: 10px 0; } div.dialog p { margin: 16px 0; } div.dialog > p { margin: 0 0 1em; padding: 1em; background-color: #F7F7F7; border: 1px solid #CCC; border-right-color: #999; border-left-color: #999; border-bottom-color: #999; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-color: #DADADA; color: #666; box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); }
|
|
3
|
-
.dialog
|
|
4
|
-
div
|
|
5
|
-
h1
|
|
6
|
-
| The change you wanted was rejected.
|
|
7
|
-
p
|
|
8
|
-
| Maybe you tried to change something you didn't have access to.
|
|
9
|
-
p
|
|
10
|
-
| If you are the application owner check the logs for more information.
|