dynamic_error_pages 0.0.3 → 0.1.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/README.md +52 -5
- data/dynamic_error_pages.gemspec +1 -1
- data/gemfiles/3.2.gemfile.lock +4 -4
- data/gemfiles/4.0.gemfile.lock +4 -4
- data/lib/dynamic_error_pages.rb +1 -0
- data/lib/dynamic_error_pages/routes.rb +12 -0
- data/lib/dynamic_error_pages/version.rb +1 -1
- data/spec/dummy3.2/app/controllers/tests_controller.rb +5 -1
- data/spec/dummy3.2/config/routes.rb +3 -0
- data/spec/dummy3.2/lib/custom_exception.rb +2 -0
- data/spec/dummy4.0/app/controllers/tests_controller.rb +6 -1
- data/spec/dummy4.0/config/routes.rb +3 -0
- data/spec/dummy4.0/lib/custom_exception.rb +2 -0
- data/spec/features/exception_spec.rb +6 -1
- metadata +8 -10
- data/config/routes.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 604898ea38f146522bbe987729e9834a93fcf1b7
|
4
|
+
data.tar.gz: 41745a7388e9e2f5b822279eb432a562f131089d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aeb04c6f54ae53372ad23fa8f05614beaf96ea271759584e94f644df81c1027f5627e81e11e7f675e6f50e9fa0160e9332fa82194d594de768ff7ded00697915
|
7
|
+
data.tar.gz: ecf60f6b21bed4468f32e02d1280f03059ae7fa1fe90d49246e3dd6f8718c0301bf6d0702eaef06ded9e7140d139cd3fe68791d21f97d532bba28ae7ee22eef0
|
data/README.md
CHANGED
@@ -11,6 +11,13 @@ Engine that helps you to generate dynamic error pages with Rails
|
|
11
11
|
|
12
12
|
```rails >= 3.2```
|
13
13
|
|
14
|
+
## What and why
|
15
|
+
|
16
|
+
Normally Rails places some static error pages for special error codes (404, 422 and 500) inside the *public* directory.
|
17
|
+
These files are rendered if an error occures. But these templates are rendered without a layout.
|
18
|
+
This causes a bad integration into your custom layout.
|
19
|
+
The ``` dynamic_error_pages ``` gem let you create your own templates which are rendered inside your application layout.
|
20
|
+
|
14
21
|
## Installation
|
15
22
|
|
16
23
|
Add this line to your application's Gemfile:
|
@@ -21,18 +28,58 @@ And then execute:
|
|
21
28
|
|
22
29
|
$ bundle
|
23
30
|
|
24
|
-
Or install it yourself as:
|
25
|
-
|
26
|
-
$ gem install dynamic_error_pages
|
27
|
-
|
28
31
|
## Usage
|
29
32
|
|
33
|
+
### Include your templates
|
34
|
+
|
30
35
|
Just place your custom error templates inside the ``` app/views/dynamic_error_pages/errors ``` folder. The files need to
|
31
36
|
be named like the returned status code. The ``` 404.html.erb ``` would be used for status code 404 like ```ActiveRecord::RecordNotFound``` would raise for example.
|
32
37
|
|
33
38
|
If an error is raised and no template for the status code can be found, the engine will fallback to the ```404.html.erb```-template.
|
34
39
|
|
35
|
-
|
40
|
+
### Include the routing
|
41
|
+
|
42
|
+
Activate the routes for dynamic error handling in your ```routes.rb```.
|
43
|
+
|
44
|
+
```
|
45
|
+
YourApp::Application.routes.draw do
|
46
|
+
# ....
|
47
|
+
|
48
|
+
dynamic_error_pages
|
49
|
+
|
50
|
+
end
|
51
|
+
```
|
52
|
+
|
53
|
+
### Custom error handling
|
54
|
+
|
55
|
+
You may want to handle the incoming errors in a different way the gem handles this. Just create a subclass of
|
56
|
+
For example, create a file named ``` errors_controller.rb ``` in ``` app/controllers ```.
|
57
|
+
|
58
|
+
|
59
|
+
class ErrorsController < DynamicErrorPages::ErrorsController
|
60
|
+
skip_before_filter :my_fancy_stuff # change your filters...
|
61
|
+
|
62
|
+
def show
|
63
|
+
# do whatever you want...
|
64
|
+
super
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
And adjust the routes file to support your custom ```errors_controller```
|
69
|
+
|
70
|
+
```
|
71
|
+
DeviseDynamicErrorPages::Application.routes.draw do
|
72
|
+
# ....
|
73
|
+
|
74
|
+
dynamic_error_pages :controller => "errors"
|
75
|
+
|
76
|
+
end
|
77
|
+
```
|
78
|
+
|
79
|
+
## Limitations
|
80
|
+
|
81
|
+
At the moment, the gem will allways force :html format in the response.
|
82
|
+
In future versions, this behaviour will be extended.
|
36
83
|
|
37
84
|
## TODO
|
38
85
|
|
data/dynamic_error_pages.gemspec
CHANGED
data/gemfiles/3.2.gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: /home/marcus/Work/repos/github/dynamic_error_pages
|
3
3
|
specs:
|
4
|
-
dynamic_error_pages (0.0.
|
5
|
-
rails (>= 3.2.0
|
4
|
+
dynamic_error_pages (0.0.3)
|
5
|
+
rails (>= 3.2.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
@@ -58,7 +58,7 @@ GEM
|
|
58
58
|
method_source (0.8.2)
|
59
59
|
mime-types (1.25)
|
60
60
|
mini_portile (0.5.1)
|
61
|
-
multi_json (1.8.
|
61
|
+
multi_json (1.8.1)
|
62
62
|
nokogiri (1.6.0)
|
63
63
|
mini_portile (~> 0.5.0)
|
64
64
|
polyglot (0.3.3)
|
@@ -116,7 +116,7 @@ GEM
|
|
116
116
|
treetop (1.4.15)
|
117
117
|
polyglot
|
118
118
|
polyglot (>= 0.3.1)
|
119
|
-
tzinfo (0.3.
|
119
|
+
tzinfo (0.3.38)
|
120
120
|
xpath (2.0.0)
|
121
121
|
nokogiri (~> 1.3)
|
122
122
|
|
data/gemfiles/4.0.gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: /home/marcus/Work/repos/github/dynamic_error_pages
|
3
3
|
specs:
|
4
|
-
dynamic_error_pages (0.0.
|
5
|
-
rails (>= 3.2.0
|
4
|
+
dynamic_error_pages (0.0.3)
|
5
|
+
rails (>= 3.2.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
@@ -55,7 +55,7 @@ GEM
|
|
55
55
|
mime-types (1.25)
|
56
56
|
mini_portile (0.5.1)
|
57
57
|
minitest (4.7.5)
|
58
|
-
multi_json (1.8.
|
58
|
+
multi_json (1.8.1)
|
59
59
|
nokogiri (1.6.0)
|
60
60
|
mini_portile (~> 0.5.0)
|
61
61
|
polyglot (0.3.3)
|
@@ -111,7 +111,7 @@ GEM
|
|
111
111
|
treetop (1.4.15)
|
112
112
|
polyglot
|
113
113
|
polyglot (>= 0.3.1)
|
114
|
-
tzinfo (0.3.
|
114
|
+
tzinfo (0.3.38)
|
115
115
|
xpath (2.0.0)
|
116
116
|
nokogiri (~> 1.3)
|
117
117
|
|
data/lib/dynamic_error_pages.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
module ActionDispatch::Routing
|
2
|
+
class Mapper
|
3
|
+
def dynamic_error_pages(opts={})
|
4
|
+
Rails.application.routes.draw do
|
5
|
+
# rails 4 need the :via option
|
6
|
+
via = Rails::VERSION::MAJOR > 3 ? {:via => :all} : {}
|
7
|
+
controller = opts[:controller] || "dynamic_error_pages/errors"
|
8
|
+
match '/:status', {:to => "#{controller}#show", :constraints => { :status => /\d{3}/ }}.merge(via)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -17,4 +17,9 @@ feature "dynamic exception pages should be delivered with html format" do
|
|
17
17
|
page.should have_content "my 404" # 404 because 422 is not present
|
18
18
|
end
|
19
19
|
|
20
|
-
|
20
|
+
scenario "custom exception" do
|
21
|
+
visit custom_exception_url
|
22
|
+
page.should have_content "my 500"
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamic_error_pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcus Geißler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -129,9 +129,6 @@ dependencies:
|
|
129
129
|
- - '>='
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: 3.2.0
|
132
|
-
- - <=
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: '4.1'
|
135
132
|
type: :runtime
|
136
133
|
prerelease: false
|
137
134
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -139,9 +136,6 @@ dependencies:
|
|
139
136
|
- - '>='
|
140
137
|
- !ruby/object:Gem::Version
|
141
138
|
version: 3.2.0
|
142
|
-
- - <=
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '4.1'
|
145
139
|
description: Engine that helps you to generate dynamic error pages with Rails
|
146
140
|
email:
|
147
141
|
- marcus3006@gmail.com
|
@@ -163,7 +157,6 @@ files:
|
|
163
157
|
- app/controllers/dynamic_error_pages/errors_controller.rb
|
164
158
|
- app/views/.gitkeep
|
165
159
|
- app/views/dynamic_error_pages/errors/404.html.erb
|
166
|
-
- config/routes.rb
|
167
160
|
- dynamic_error_pages.gemspec
|
168
161
|
- gemfiles/3.2.gemfile
|
169
162
|
- gemfiles/3.2.gemfile.lock
|
@@ -171,6 +164,7 @@ files:
|
|
171
164
|
- gemfiles/4.0.gemfile.lock
|
172
165
|
- lib/dynamic_error_pages.rb
|
173
166
|
- lib/dynamic_error_pages/engine.rb
|
167
|
+
- lib/dynamic_error_pages/routes.rb
|
174
168
|
- lib/dynamic_error_pages/version.rb
|
175
169
|
- lib/tasks/dynamic_error_pages_tasks.rake
|
176
170
|
- script/rails
|
@@ -204,6 +198,7 @@ files:
|
|
204
198
|
- spec/dummy3.2/config/routes.rb
|
205
199
|
- spec/dummy3.2/db/.gitkeep
|
206
200
|
- spec/dummy3.2/lib/assets/.gitkeep
|
201
|
+
- spec/dummy3.2/lib/custom_exception.rb
|
207
202
|
- spec/dummy3.2/log/.gitkeep
|
208
203
|
- spec/dummy3.2/public/favicon.ico
|
209
204
|
- spec/dummy3.2/script/rails
|
@@ -244,6 +239,7 @@ files:
|
|
244
239
|
- spec/dummy4.0/config/routes.rb
|
245
240
|
- spec/dummy4.0/db/.gitkeep
|
246
241
|
- spec/dummy4.0/lib/assets/.keep
|
242
|
+
- spec/dummy4.0/lib/custom_exception.rb
|
247
243
|
- spec/dummy4.0/log/.keep
|
248
244
|
- spec/dummy4.0/public/favicon.ico
|
249
245
|
- spec/features/exception_spec.rb
|
@@ -268,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
268
264
|
version: '0'
|
269
265
|
requirements: []
|
270
266
|
rubyforge_project:
|
271
|
-
rubygems_version: 2.
|
267
|
+
rubygems_version: 2.1.8
|
272
268
|
signing_key:
|
273
269
|
specification_version: 4
|
274
270
|
summary: Engine that helps you to generate dynamic error pages with Rails
|
@@ -303,6 +299,7 @@ test_files:
|
|
303
299
|
- spec/dummy3.2/config/routes.rb
|
304
300
|
- spec/dummy3.2/db/.gitkeep
|
305
301
|
- spec/dummy3.2/lib/assets/.gitkeep
|
302
|
+
- spec/dummy3.2/lib/custom_exception.rb
|
306
303
|
- spec/dummy3.2/log/.gitkeep
|
307
304
|
- spec/dummy3.2/public/favicon.ico
|
308
305
|
- spec/dummy3.2/script/rails
|
@@ -343,6 +340,7 @@ test_files:
|
|
343
340
|
- spec/dummy4.0/config/routes.rb
|
344
341
|
- spec/dummy4.0/db/.gitkeep
|
345
342
|
- spec/dummy4.0/lib/assets/.keep
|
343
|
+
- spec/dummy4.0/lib/custom_exception.rb
|
346
344
|
- spec/dummy4.0/log/.keep
|
347
345
|
- spec/dummy4.0/public/favicon.ico
|
348
346
|
- spec/features/exception_spec.rb
|
data/config/routes.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
Rails.application.routes.draw do
|
2
|
-
|
3
|
-
# rails 4 need the :via option
|
4
|
-
via = Rails::VERSION::MAJOR > 3 ? {:via => :all} : {}
|
5
|
-
|
6
|
-
# if a subclassed errorscontroller exist, route to it
|
7
|
-
controller = defined?(DynamicErrorPages::PatchedErrorsController) ? 'patched_errors' : 'errors'
|
8
|
-
|
9
|
-
match '/:status', {:to => "dynamic_error_pages/#{controller}#show", :constraints => { :status => /\d{3}/ }}.merge(via)
|
10
|
-
end
|