rails_exception_handler 2.3.5 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/Gemfile.lock +11 -11
- data/HISTORY +3 -0
- data/README.markdown +15 -4
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/app/mailers/rails_exception_handler/error_mailer.rb +15 -0
- data/app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.html.erb +15 -0
- data/app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.text.erb +8 -0
- data/lib/rails_exception_handler/handler.rb +2 -0
- data/lib/rails_exception_handler/storage.rb +11 -0
- data/rails_exception_handler.gemspec +7 -4
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1f7fe95e0609f50a4e9b019cc4c685aec54d4a9
|
4
|
+
data.tar.gz: 7cf25f2fd396d8d98ad82f9aeda580a99bcd42a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08740c06d7c7e5de8b75e2dc693d40d6aed88c3f7ee1b2b141f3b4599a719cb9931cc5c47316238f6f0c936967541c0581b6980880ecc55ae2e329e3ea01fd7d'
|
7
|
+
data.tar.gz: 26b7059fd57c9b393eb50cf04d264b9646c82a819161a5516022321d11b50b4e870d5bedb84f12fac2754c9f2c0b53b71431e931a0a306b33a79540972526fa9
|
data/Gemfile
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
ruby File.read(".ruby-version").strip
|
3
|
+
#ruby '1.9.3', :patchlevel => "125"
|
3
4
|
|
4
5
|
group :test, :development do
|
5
6
|
|
@@ -7,10 +8,12 @@ group :test, :development do
|
|
7
8
|
#gem "rack-test", '0.5.7'
|
8
9
|
#gem 'mongoid'
|
9
10
|
#gem 'bson_ext'
|
11
|
+
#gem 'nokogiri', '1.6.8.1'
|
10
12
|
|
11
13
|
#gem "rails", '3.2.22.5'
|
12
14
|
#gem "rack-test", '0.6.2'
|
13
15
|
#gem 'mongoid'
|
16
|
+
#gem 'nokogiri', '1.6.8.1'
|
14
17
|
|
15
18
|
#gem "rails", '4.0.13'
|
16
19
|
#gem "rack-test", '0.6.3'
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rails_exception_handler (2.
|
4
|
+
rails_exception_handler (2.4.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: http://rubygems.org/
|
@@ -45,14 +45,14 @@ GEM
|
|
45
45
|
tzinfo (~> 1.1)
|
46
46
|
addressable (2.4.0)
|
47
47
|
arel (8.0.0)
|
48
|
-
bson (4.2.
|
48
|
+
bson (4.2.2)
|
49
49
|
builder (3.2.3)
|
50
50
|
coderay (1.1.1)
|
51
51
|
concurrent-ruby (1.0.5)
|
52
52
|
descendants_tracker (0.0.4)
|
53
53
|
thread_safe (~> 0.3, >= 0.3.1)
|
54
54
|
diff-lcs (1.3)
|
55
|
-
erubi (1.6.
|
55
|
+
erubi (1.6.1)
|
56
56
|
faraday (0.9.2)
|
57
57
|
multipart-post (>= 1.2, < 3)
|
58
58
|
git (1.3.0)
|
@@ -65,10 +65,10 @@ GEM
|
|
65
65
|
oauth2 (~> 1.0)
|
66
66
|
globalid (0.4.0)
|
67
67
|
activesupport (>= 4.2.0)
|
68
|
-
hashie (3.5.
|
68
|
+
hashie (3.5.6)
|
69
69
|
highline (1.7.8)
|
70
|
-
i18n (0.8.
|
71
|
-
jeweler (2.3.
|
70
|
+
i18n (0.8.6)
|
71
|
+
jeweler (2.3.7)
|
72
72
|
builder
|
73
73
|
bundler (>= 1)
|
74
74
|
git (>= 1.2.5)
|
@@ -87,10 +87,10 @@ GEM
|
|
87
87
|
method_source (0.8.2)
|
88
88
|
mime-types (2.99.3)
|
89
89
|
mini_portile2 (2.2.0)
|
90
|
-
minitest (5.10.
|
91
|
-
mongo (2.4.
|
90
|
+
minitest (5.10.3)
|
91
|
+
mongo (2.4.3)
|
92
92
|
bson (>= 4.2.1, < 5.0.0)
|
93
|
-
mongoid (6.2.
|
93
|
+
mongoid (6.2.1)
|
94
94
|
activemodel (~> 5.1)
|
95
95
|
mongo (>= 2.4.1, < 3.0.0)
|
96
96
|
multi_json (1.12.1)
|
@@ -165,7 +165,7 @@ GEM
|
|
165
165
|
activesupport (>= 4.0)
|
166
166
|
sprockets (>= 3.0.0)
|
167
167
|
sqlite3 (1.3.13)
|
168
|
-
thor (0.
|
168
|
+
thor (0.20.0)
|
169
169
|
thread_safe (0.3.6)
|
170
170
|
tzinfo (1.2.3)
|
171
171
|
thread_safe (~> 0.1)
|
@@ -191,4 +191,4 @@ RUBY VERSION
|
|
191
191
|
ruby 2.4.1p111
|
192
192
|
|
193
193
|
BUNDLED WITH
|
194
|
-
1.15.
|
194
|
+
1.15.4
|
data/HISTORY
CHANGED
data/README.markdown
CHANGED
@@ -235,6 +235,21 @@ config.storage_strategies = [:remote_url => {:target => 'http://example.com/erro
|
|
235
235
|
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.
|
236
236
|
If you use a Rails app at the other end you should simply be able to do `RailsExceptionHandler::ActiveRecord::ErrorMessage.create(params[:error_message])` or `RailsExceptionHandler::Mongoid::ErrorMessage.create(params[:error_message])` to save the report depending upon your database choice.
|
237
237
|
|
238
|
+
### Sending the error report as an email
|
239
|
+
|
240
|
+
```ruby
|
241
|
+
config.storage_strategies = [:email => {:recipients => "test1@example.com,test2@example.com"}]
|
242
|
+
```
|
243
|
+
|
244
|
+
Exceptions will be notified by email. Make sure the application got an
|
245
|
+
`ApplicationMailer` with default from specified:
|
246
|
+
|
247
|
+
```ruby
|
248
|
+
class ApplicationMailer < ActionMailer::Base
|
249
|
+
default from: 'from@example.com'
|
250
|
+
end
|
251
|
+
```
|
252
|
+
|
238
253
|
# Exception filters
|
239
254
|
|
240
255
|
Sometimes it is necessary to filter errors. All filters are disabled by default and I recommend you deploy your application this way initially, and then add filters as they become necessary.
|
@@ -298,10 +313,6 @@ config.filters = [:referer_url_regxp => /\problematicreferer/i]
|
|
298
313
|
|
299
314
|
https://github.com/Sharagoz/rails_exception_handler/graphs/contributors
|
300
315
|
|
301
|
-
Would you like to contribute? Here are some things on the todo list:
|
302
|
-
|
303
|
-
* An email storage strategy for those that wish to be notified of the exceptions through email
|
304
|
-
|
305
316
|
# Licence
|
306
317
|
|
307
318
|
Copyright © 2017 Bjørn Trondsen, released under the MIT license
|
data/Rakefile
CHANGED
@@ -21,7 +21,7 @@ Jeweler::Tasks.new do |gem|
|
|
21
21
|
gem.name = "rails_exception_handler"
|
22
22
|
gem.homepage = "http://github.com/Sharagoz/rails_exception_handler"
|
23
23
|
gem.license = "MIT"
|
24
|
-
gem.summary = %Q{
|
24
|
+
gem.summary = %Q{Highly customizable exception handling for Ruby on Rails}
|
25
25
|
gem.description = %Q{}
|
26
26
|
gem.email = "contact@sharagoz.com"
|
27
27
|
gem.authors = ["Sharagoz"]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.0
|
@@ -0,0 +1,15 @@
|
|
1
|
+
if(RailsExceptionHandler.configuration.activate?)
|
2
|
+
class RailsExceptionHandler::ErrorMailer < ApplicationMailer
|
3
|
+
|
4
|
+
# Subject can be set in your I18n file at config/locales/en.yml
|
5
|
+
# with the following lookup:
|
6
|
+
#
|
7
|
+
# en.error_mailer.send_error_mail_to_admin.subject
|
8
|
+
#
|
9
|
+
def send_error_mail_to_admin(info,email)
|
10
|
+
@info = JSON.parse(info)
|
11
|
+
mail(to: email, subject: 'An error occured on your application')
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
@@ -32,6 +32,8 @@ class RailsExceptionHandler::Handler
|
|
32
32
|
RailsExceptionHandler::Storage.send(strategy, @parsed_error.external_info)
|
33
33
|
elsif(strategy.class == Hash && strategy[:remote_url])
|
34
34
|
RailsExceptionHandler::Storage.remote_url(strategy[:remote_url][:target],@parsed_error.external_info)
|
35
|
+
elsif(strategy.class == Hash && strategy[:email])
|
36
|
+
RailsExceptionHandler::Storage.email(strategy[:email][:recipients],@parsed_error.external_info)
|
35
37
|
else
|
36
38
|
raise "RailsExceptionHandler: Unknown storage strategy #{strategy.inspect}"
|
37
39
|
end
|
@@ -29,6 +29,17 @@ class RailsExceptionHandler::Storage
|
|
29
29
|
Net::HTTP::post_form(uri, params)
|
30
30
|
end
|
31
31
|
|
32
|
+
# Notify application admin that an error occured
|
33
|
+
def self.email(recipients,info)
|
34
|
+
return if recipients.blank?
|
35
|
+
if Rails::VERSION::MAJOR == 3 || (Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR < 2)
|
36
|
+
delivery_method = :deliver
|
37
|
+
else
|
38
|
+
delivery_method = :deliver_later
|
39
|
+
end
|
40
|
+
RailsExceptionHandler::ErrorMailer.send_error_mail_to_admin(info.to_json,recipients).send(delivery_method)
|
41
|
+
end
|
42
|
+
|
32
43
|
private
|
33
44
|
|
34
45
|
# Credit: Hash flattening technique borrowed from Peter Marklund: http://marklunds.com/articles/one/314
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: rails_exception_handler 2.
|
5
|
+
# stub: rails_exception_handler 2.4.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "rails_exception_handler".freeze
|
9
|
-
s.version = "2.
|
9
|
+
s.version = "2.4.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Sharagoz".freeze]
|
14
|
-
s.date = "2017-
|
14
|
+
s.date = "2017-08-29"
|
15
15
|
s.description = "".freeze
|
16
16
|
s.email = "contact@sharagoz.com".freeze
|
17
17
|
s.extra_rdoc_files = [
|
@@ -28,8 +28,11 @@ Gem::Specification.new do |s|
|
|
28
28
|
"Rakefile",
|
29
29
|
"VERSION",
|
30
30
|
"app/controllers/error_response_controller.rb",
|
31
|
+
"app/mailers/rails_exception_handler/error_mailer.rb",
|
31
32
|
"app/models/rails_exception_handler/active_record/error_message.rb",
|
32
33
|
"app/models/rails_exception_handler/mongoid/error_message.rb",
|
34
|
+
"app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.html.erb",
|
35
|
+
"app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.text.erb",
|
33
36
|
"gemfiles/rails30.gemfile",
|
34
37
|
"gemfiles/rails32.187-ree.gemfile",
|
35
38
|
"gemfiles/rails32.gemfile",
|
@@ -85,7 +88,7 @@ Gem::Specification.new do |s|
|
|
85
88
|
s.homepage = "http://github.com/Sharagoz/rails_exception_handler".freeze
|
86
89
|
s.licenses = ["MIT".freeze]
|
87
90
|
s.rubygems_version = "2.6.12".freeze
|
88
|
-
s.summary = "
|
91
|
+
s.summary = "Highly customizable exception handling for Ruby on Rails".freeze
|
89
92
|
|
90
93
|
if s.respond_to? :specification_version then
|
91
94
|
s.specification_version = 4
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_exception_handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharagoz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -153,8 +153,11 @@ files:
|
|
153
153
|
- Rakefile
|
154
154
|
- VERSION
|
155
155
|
- app/controllers/error_response_controller.rb
|
156
|
+
- app/mailers/rails_exception_handler/error_mailer.rb
|
156
157
|
- app/models/rails_exception_handler/active_record/error_message.rb
|
157
158
|
- app/models/rails_exception_handler/mongoid/error_message.rb
|
159
|
+
- app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.html.erb
|
160
|
+
- app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.text.erb
|
158
161
|
- gemfiles/rails30.gemfile
|
159
162
|
- gemfiles/rails32.187-ree.gemfile
|
160
163
|
- gemfiles/rails32.gemfile
|
@@ -229,5 +232,5 @@ rubyforge_project:
|
|
229
232
|
rubygems_version: 2.6.12
|
230
233
|
signing_key:
|
231
234
|
specification_version: 4
|
232
|
-
summary:
|
235
|
+
summary: Highly customizable exception handling for Ruby on Rails
|
233
236
|
test_files: []
|