public_rescue 0.3.1 → 0.4.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.
- data/VERSION +1 -1
- data/lib/public_rescue/public_exceptions.rb +36 -0
- data/lib/public_rescue/rails.rb +8 -2
- data/lib/public_rescue.rb +1 -0
- data/public_rescue.gemspec +12 -11
- metadata +15 -14
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module PublicRescue
|
2
|
+
class PublicExceptions
|
3
|
+
|
4
|
+
def call(env)
|
5
|
+
|
6
|
+
exception = env["action_dispatch.exception"]
|
7
|
+
wrapper = ActionDispatch::ExceptionWrapper.new(env, exception)
|
8
|
+
|
9
|
+
request = ActionDispatch::Request.new(env)
|
10
|
+
status = wrapper.status_code
|
11
|
+
exception_details = {
|
12
|
+
:request => request, :exception => exception,
|
13
|
+
:status => status,
|
14
|
+
:application_trace => wrapper.application_trace,
|
15
|
+
:framework_trace => wrapper.framework_trace,
|
16
|
+
:full_trace => wrapper.full_trace
|
17
|
+
}
|
18
|
+
request.env['public_rescue.exception_details'] = exception_details
|
19
|
+
action = ActionDispatch::ExceptionWrapper.rescue_responses[exception.class.name]
|
20
|
+
controller_name = Rails.configuration.public_rescue.controller.to_s.camelize << 'Controller'
|
21
|
+
begin
|
22
|
+
controller = Rails.const_get(controller_name)
|
23
|
+
rescue NameError => n_E
|
24
|
+
controller = PublicErrorsController
|
25
|
+
end
|
26
|
+
response = controller.action(action).call(request.env).last
|
27
|
+
render(status, response.body)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def render(status, body)
|
33
|
+
[status, {'Content-Type' => "text/html; charset=#{Response.default_charset}", 'Content-Length' => body.bytesize.to_s}, [body]]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/public_rescue/rails.rb
CHANGED
@@ -6,8 +6,14 @@ module PublicRescue
|
|
6
6
|
config.public_rescue = ActiveSupport::OrderedOptions.new
|
7
7
|
config.public_rescue.controller = :public_errors
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
if Rails::VERSION::MINOR == 2
|
10
|
+
initializer "public_rescue.set_exceptions_app" do |app|
|
11
|
+
app.config.exceptions_app = PublicRescue::PublicExceptions.new
|
12
|
+
end
|
13
|
+
else
|
14
|
+
initializer "public_rescue.add_middleware" do |app|
|
15
|
+
app.middleware.swap ActionDispatch::ShowExceptions, PublicRescue::ShowExceptions, app.config.consider_all_requests_local
|
16
|
+
end
|
11
17
|
end
|
12
18
|
|
13
19
|
|
data/lib/public_rescue.rb
CHANGED
data/public_rescue.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "public_rescue"
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Cyril Picard"]
|
12
|
+
s.date = "2012-01-26"
|
13
|
+
s.description = "PublicRescue is a gem for rails application who want to display dynamic error pages. It creates a new Rack middleware which replaces ActionDispatch::ShowExceptions and overwrites the rescue_action_in_public method."
|
14
|
+
s.email = "Cyril@picard.ch"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
@@ -32,17 +32,18 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/generators/public_rescue/views_generator.rb",
|
33
33
|
"lib/generators/template/controller.rb",
|
34
34
|
"lib/public_rescue.rb",
|
35
|
+
"lib/public_rescue/public_exceptions.rb",
|
35
36
|
"lib/public_rescue/rails.rb",
|
36
37
|
"lib/public_rescue/show_exceptions.rb",
|
37
38
|
"public_rescue.gemspec",
|
38
39
|
"test/helper.rb",
|
39
40
|
"test/test_public_rescue.rb"
|
40
41
|
]
|
41
|
-
s.homepage =
|
42
|
-
s.licenses = [
|
43
|
-
s.require_paths = [
|
44
|
-
s.rubygems_version =
|
45
|
-
s.summary =
|
42
|
+
s.homepage = "http://github.com/cyrilpic/public_rescue"
|
43
|
+
s.licenses = ["MIT"]
|
44
|
+
s.require_paths = ["lib"]
|
45
|
+
s.rubygems_version = "1.8.10"
|
46
|
+
s.summary = "Rails3 gem for displaying dynamic error pages."
|
46
47
|
|
47
48
|
if s.respond_to? :specification_version then
|
48
49
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: public_rescue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70124235446940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70124235446940
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: shoulda
|
27
|
-
requirement: &
|
27
|
+
requirement: &70124235445620 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70124235445620
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70124235460680 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70124235460680
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70124235459240 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70124235459240
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rcov
|
60
|
-
requirement: &
|
60
|
+
requirement: &70124235458140 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70124235458140
|
69
69
|
description: PublicRescue is a gem for rails application who want to display dynamic
|
70
70
|
error pages. It creates a new Rack middleware which replaces ActionDispatch::ShowExceptions
|
71
71
|
and overwrites the rescue_action_in_public method.
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/generators/public_rescue/views_generator.rb
|
92
92
|
- lib/generators/template/controller.rb
|
93
93
|
- lib/public_rescue.rb
|
94
|
+
- lib/public_rescue/public_exceptions.rb
|
94
95
|
- lib/public_rescue/rails.rb
|
95
96
|
- lib/public_rescue/show_exceptions.rb
|
96
97
|
- public_rescue.gemspec
|
@@ -111,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
112
|
version: '0'
|
112
113
|
segments:
|
113
114
|
- 0
|
114
|
-
hash:
|
115
|
+
hash: 1601522306920746281
|
115
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
117
|
none: false
|
117
118
|
requirements:
|
@@ -120,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
121
|
version: '0'
|
121
122
|
requirements: []
|
122
123
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.8.
|
124
|
+
rubygems_version: 1.8.10
|
124
125
|
signing_key:
|
125
126
|
specification_version: 3
|
126
127
|
summary: Rails3 gem for displaying dynamic error pages.
|