public_rescue 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
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
@@ -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
- initializer "devise.add_middleware" do |app|
10
- app.middleware.swap ActionDispatch::ShowExceptions, PublicRescue::ShowExceptions, app.config.consider_all_requests_local
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
@@ -7,6 +7,7 @@ module PublicRescue
7
7
  extend ActiveSupport::Autoload
8
8
  autoload :ShowExceptions
9
9
  autoload :PublicErrorsController
10
+ autoload :PublicExceptions
10
11
  end
11
12
 
12
13
  require 'public_rescue/rails'
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{public_rescue}
8
- s.version = "0.3.1"
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 = [%q{Cyril Picard}]
12
- s.date = %q{2011-07-27}
13
- s.description = %q{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 = %q{Cyril@picard.ch}
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 = %q{http://github.com/cyrilpic/public_rescue}
42
- s.licenses = [%q{MIT}]
43
- s.require_paths = [%q{lib}]
44
- s.rubygems_version = %q{1.8.5}
45
- s.summary = %q{Rails3 gem for displaying dynamic error pages.}
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.3.1
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: 2011-07-27 00:00:00.000000000Z
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: &2166262180 !ruby/object:Gem::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: *2166262180
24
+ version_requirements: *70124235446940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: shoulda
27
- requirement: &2166261700 !ruby/object:Gem::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: *2166261700
35
+ version_requirements: *70124235445620
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &2166261220 !ruby/object:Gem::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: *2166261220
46
+ version_requirements: *70124235460680
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &2166260700 !ruby/object:Gem::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: *2166260700
57
+ version_requirements: *70124235459240
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &2166260200 !ruby/object:Gem::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: *2166260200
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: 926339667492106224
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.5
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.