rails_exception_handler 2.3.5 → 2.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.
- 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: []
|