exception_handling 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -7
- data/lib/exception_handling.rb +23 -0
- data/lib/exception_handling/version.rb +1 -1
- data/test/unit/exception_handling_test.rb +30 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7a5247d7f017803d5980c254bae1a598f8f6db3
|
4
|
+
data.tar.gz: 12edf7f3951cc443f5827c81f4f3e101b7b68c62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93c6a4c4452b9523556b5e24623fff2879978cf022c371d45acb537ab7fd6570200d56b0bc95edd412aa1704f0c33ebdf8a256a44c65e3d415e8edffcbfc0098
|
7
|
+
data.tar.gz: d018fbb57661e0bcc1c064378640f750eabbfd0218e5b306f55f9b69bc0fbf239bf2f164542d97c2e5926ac3829f29f76cb491aadc695ba62f21544bf0d0aa33
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
exception_handling (1.
|
4
|
+
exception_handling (1.2.0)
|
5
5
|
actionmailer (~> 3.2)
|
6
6
|
actionpack (~> 3.2)
|
7
7
|
activesupport (~> 3.2)
|
@@ -45,14 +45,14 @@ GEM
|
|
45
45
|
builder (3.0.4)
|
46
46
|
coderay (1.1.0)
|
47
47
|
erubis (2.7.0)
|
48
|
-
eventmachine (1.0.
|
48
|
+
eventmachine (1.0.3)
|
49
49
|
hike (1.2.3)
|
50
50
|
hobo_support (2.0.1)
|
51
51
|
rails (~> 3.2.0)
|
52
52
|
i18n (0.6.11)
|
53
53
|
invoca-utils (0.0.2)
|
54
54
|
journey (1.0.4)
|
55
|
-
json (1.8.
|
55
|
+
json (1.8.1)
|
56
56
|
mail (2.5.4)
|
57
57
|
mime-types (~> 1.16)
|
58
58
|
treetop (~> 1.4.8)
|
@@ -67,12 +67,12 @@ GEM
|
|
67
67
|
coderay (~> 1.1.0)
|
68
68
|
method_source (~> 0.8.1)
|
69
69
|
slop (~> 3.4)
|
70
|
-
rack (1.4.
|
70
|
+
rack (1.4.5)
|
71
71
|
rack-cache (1.2)
|
72
72
|
rack (>= 0.4)
|
73
73
|
rack-ssl (1.3.4)
|
74
74
|
rack
|
75
|
-
rack-test (0.6.
|
75
|
+
rack-test (0.6.2)
|
76
76
|
rack (>= 1.0)
|
77
77
|
rails (3.2.19)
|
78
78
|
actionmailer (= 3.2.19)
|
@@ -101,7 +101,7 @@ GEM
|
|
101
101
|
activesupport (>= 3.0.0)
|
102
102
|
bourne (~> 1.3)
|
103
103
|
slop (3.6.0)
|
104
|
-
sprockets (2.2.
|
104
|
+
sprockets (2.2.2)
|
105
105
|
hike (~> 1.2)
|
106
106
|
multi_json (~> 1.0)
|
107
107
|
rack (~> 1.0)
|
@@ -111,7 +111,7 @@ GEM
|
|
111
111
|
treetop (1.4.15)
|
112
112
|
polyglot
|
113
113
|
polyglot (>= 0.3.1)
|
114
|
-
tzinfo (0.3.
|
114
|
+
tzinfo (0.3.42)
|
115
115
|
|
116
116
|
PLATFORMS
|
117
117
|
ruby
|
data/lib/exception_handling.rb
CHANGED
@@ -171,6 +171,10 @@ EOF
|
|
171
171
|
custom_description = ""
|
172
172
|
write_exception_to_log(exception, custom_description, timestamp)
|
173
173
|
|
174
|
+
if honeybadger?
|
175
|
+
send_exception_to_honeybadger(exception, nil, timestamp)
|
176
|
+
end
|
177
|
+
|
174
178
|
if should_send_email?
|
175
179
|
controller = env['action_controller.instance']
|
176
180
|
# controller may not exist in some cases (like most 404 errors)
|
@@ -202,6 +206,10 @@ EOF
|
|
202
206
|
|
203
207
|
write_exception_to_log(ex, exception_context, timestamp)
|
204
208
|
|
209
|
+
if honeybadger?
|
210
|
+
send_exception_to_honeybadger(ex, exception_context, timestamp)
|
211
|
+
end
|
212
|
+
|
205
213
|
if treat_as_local
|
206
214
|
return
|
207
215
|
end
|
@@ -243,6 +251,21 @@ EOF
|
|
243
251
|
end
|
244
252
|
end
|
245
253
|
|
254
|
+
#
|
255
|
+
# Log exception to honeybadger.io.
|
256
|
+
#
|
257
|
+
def send_exception_to_honeybadger(ex, exception_context, timestamp)
|
258
|
+
custom_message = "(Error:#{timestamp}) #{ex.class} #{exception_context} (#{ex.message}): " + clean_backtrace(ex).join(" ")
|
259
|
+
Honeybadger.notify(ex, context: { custom_message: custom_message })
|
260
|
+
end
|
261
|
+
|
262
|
+
#
|
263
|
+
# Check if Honeybadger defined.
|
264
|
+
#
|
265
|
+
def honeybadger?
|
266
|
+
Object.const_defined?("Honeybadger")
|
267
|
+
end
|
268
|
+
|
246
269
|
#
|
247
270
|
# Pull certain fields out of the controller and add to the data hash.
|
248
271
|
#
|
@@ -360,6 +360,36 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
|
|
360
360
|
end
|
361
361
|
end
|
362
362
|
|
363
|
+
context "Honeybadger integration" do
|
364
|
+
context "with Honeybadger not defined" do
|
365
|
+
should "not invoke send_exception_to_honeybadger when log_error is executed" do
|
366
|
+
ExceptionHandling.expects(:send_exception_to_honeybadger).times(0)
|
367
|
+
ExceptionHandling.log_error(exception_1)
|
368
|
+
end
|
369
|
+
|
370
|
+
should "not invoke send_exception_to_honeybadger when ensure_safe is executed" do
|
371
|
+
ExceptionHandling.expects(:send_exception_to_honeybadger).times(0)
|
372
|
+
ExceptionHandling.ensure_safe { raise exception_1 }
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
376
|
+
context "with Honeybadger defined" do
|
377
|
+
setup do
|
378
|
+
stub(ExceptionHandling).honeybadger? { true }
|
379
|
+
end
|
380
|
+
|
381
|
+
should "invoke send_exception_to_honeybadger when log_error is executed" do
|
382
|
+
ExceptionHandling.expects(:send_exception_to_honeybadger).times(1)
|
383
|
+
ExceptionHandling.log_error(exception_1)
|
384
|
+
end
|
385
|
+
|
386
|
+
should "invoke send_exception_to_honeybadger when ensure_safe is executed" do
|
387
|
+
ExceptionHandling.expects(:send_exception_to_honeybadger).times(1)
|
388
|
+
ExceptionHandling.ensure_safe { raise exception_1 }
|
389
|
+
end
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
363
393
|
class EventResponse
|
364
394
|
def to_s
|
365
395
|
"message from to_s!"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exception_handling
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colin Kelley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|