rails_exception_handler 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +4 -0
- data/README.markdown +11 -1
- data/VERSION +1 -1
- data/app/models/error_message.rb +1 -1
- data/lib/rails_exception_handler/configuration.rb +6 -1
- data/lib/rails_exception_handler/handler.rb +9 -1
- data/rails_exception_handler.gemspec +2 -2
- data/spec/testapp_30/Gemfile +1 -1
- data/spec/testapp_30/Gemfile.lock +2 -2
- data/spec/unit/configuration_spec.rb +2 -2
- metadata +2 -2
data/HISTORY
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
v1.2.0 - August 21st 2011
|
5
|
+
- Bug fixed where exception_database had to be configured even if active record storage was not chosen
|
6
|
+
- If public/500.html and/or public/400.html exists, these will be used as responses
|
7
|
+
|
4
8
|
v1.1.2 - July 19th 2011
|
5
9
|
- It should now be able to store user_info on routing errors too
|
6
10
|
- The RailsExceptionHandler class have been turned into a rails engine so that the load path manipulation could be removed
|
data/README.markdown
CHANGED
@@ -29,7 +29,7 @@ RailsExceptionHandler.configure do |config|
|
|
29
29
|
# {:user_agent_regxp => /\b(ApptusBot|TurnitinBot|DotBot|SiteBot)\b/i},
|
30
30
|
# {:target_url_regxp => /\b(myphpadmin)\b/i}
|
31
31
|
# ]
|
32
|
-
# config.responses = { # There must be a default response.
|
32
|
+
# config.responses = { # There must be a default response if public/500.html and public/400.html does not exist.
|
33
33
|
# :default => "<h1>500</h1><p>Internal server error</p>",
|
34
34
|
# :custom => "<h1>404</h1><p>Page not found</p>"
|
35
35
|
# }
|
@@ -86,6 +86,8 @@ If you turn this on and the error is generated by a client that is not logged in
|
|
86
86
|
|
87
87
|
### responses and response_mapping
|
88
88
|
|
89
|
+
Note: public/500.html and public/400.html will be used if these exists. Remove these files before applying the configuration below.
|
90
|
+
|
89
91
|
Create a set of responses and then map specific exceptions to these responses. There needs to be a response called :default which is used for the exceptions that are not explicity mapped to a response.
|
90
92
|
|
91
93
|
```ruby
|
@@ -223,3 +225,11 @@ config.storage_strategies = [:remote_url => {:target => 'http://example.com/erro
|
|
223
225
|
```
|
224
226
|
This option is meant for those who want to store the exception in a database table, but does not have direct access to the database itself, making active record store unsuitable. You need a web app on a server that has access to the database. An HTTP POST request will be sent to the specified URL with the error message as data.
|
225
227
|
If you use a Rails app at the other end you should simply be able to do _ErrorMessage.create(params[:error_message])_ to save the report.
|
228
|
+
|
229
|
+
## Contributors
|
230
|
+
|
231
|
+
David Rice
|
232
|
+
|
233
|
+
## Licence
|
234
|
+
|
235
|
+
Copyright © 2011 Bjørn Trondsen, released under the MIT license
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
data/app/models/error_message.rb
CHANGED
@@ -8,6 +8,11 @@ class RailsExceptionHandler::Configuration
|
|
8
8
|
@store_user_info = false
|
9
9
|
@fallback_layout = 'application'
|
10
10
|
@response_mapping = {}
|
11
|
-
@responses = {
|
11
|
+
@responses = {}
|
12
12
|
end
|
13
|
+
|
14
|
+
def active_record?
|
15
|
+
@storage_strategies.include?(:active_record)
|
16
|
+
end
|
17
|
+
|
13
18
|
end
|
@@ -67,7 +67,15 @@ class RailsExceptionHandler::Handler
|
|
67
67
|
@env['exception_handler.layout'] = response_layout
|
68
68
|
@env['exception_handler.response'] = response_text
|
69
69
|
response = ErrorResponseController.action(:index).call(@env)
|
70
|
-
|
70
|
+
if @parsed_error.routing_error?
|
71
|
+
response[0] = 404
|
72
|
+
file = "#{Rails.root}/public/404.html"
|
73
|
+
response[2].body = File.read(file) if File.exists?(file)
|
74
|
+
else
|
75
|
+
response[0] = 500
|
76
|
+
file = "#{Rails.root}/public/500.html"
|
77
|
+
response[2].body = File.read(file) if File.exists?(file)
|
78
|
+
end
|
71
79
|
return response
|
72
80
|
end
|
73
81
|
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rails_exception_handler}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Sharagoz"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-08-22}
|
13
13
|
s.description = %q{}
|
14
14
|
s.email = %q{contact@sharagoz.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/testapp_30/Gemfile
CHANGED
@@ -39,7 +39,7 @@ GEM
|
|
39
39
|
mime-types (~> 1.16)
|
40
40
|
treetop (~> 1.4.8)
|
41
41
|
mime-types (1.16)
|
42
|
-
mysql2 (0.
|
42
|
+
mysql2 (0.2.6)
|
43
43
|
polyglot (0.3.1)
|
44
44
|
rack (1.2.3)
|
45
45
|
rack-mount (0.6.14)
|
@@ -71,5 +71,5 @@ PLATFORMS
|
|
71
71
|
ruby
|
72
72
|
|
73
73
|
DEPENDENCIES
|
74
|
-
mysql2
|
74
|
+
mysql2 (= 0.2.6)
|
75
75
|
rails (= 3.0.9)
|
@@ -22,8 +22,8 @@ describe RailsExceptionHandler::Configuration do
|
|
22
22
|
@configuration.filters.should == []
|
23
23
|
end
|
24
24
|
|
25
|
-
it "should
|
26
|
-
@configuration.responses.should == {
|
25
|
+
it "should initialize responses to an empty hash" do
|
26
|
+
@configuration.responses.should == {}
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should set the reponse_mapping to {}" do
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rails_exception_handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.
|
5
|
+
version: 1.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Sharagoz
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-08-22 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|