trouble 0.0.10 → 0.0.11
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/lib/trouble/version.rb +1 -1
- data/lib/trouble.rb +23 -5
- data/spec/lib/trouble_spec.rb +22 -5
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7885087ed39042eab24b21212cebc7daaa8bb1ea
|
4
|
+
data.tar.gz: 3f6d91cea26e980c9b0f59107f456db15711bbab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40ecc987965b38c882c8be18731de28d2a6b32dc57ae26a6850f9b098f412758d20ba4eb26a52eafc52c72e05d0d1bbfc9a51b9f0a10ed1ed34d4cfff2b8bc96
|
7
|
+
data.tar.gz: 3b0708a2b5af377c89f1e00b6619bcc7ab637049a870972ef385e79b42dbc05f8c0d108915e181dde490f2a042c204ff55221e236d16611247d549090109c861
|
data/lib/trouble/version.rb
CHANGED
data/lib/trouble.rb
CHANGED
@@ -19,7 +19,26 @@ module Trouble
|
|
19
19
|
#
|
20
20
|
def self.notify(exception, metadata = nil)
|
21
21
|
exception.set_backtrace(caller) unless exception.backtrace
|
22
|
-
|
22
|
+
notify_error_service(exception, metadata)
|
23
|
+
log_in_logger(exception, metadata)
|
24
|
+
increment_metric
|
25
|
+
end
|
26
|
+
|
27
|
+
# Public: Log the error in the logger and track as metric.
|
28
|
+
#
|
29
|
+
# exception - An instance of an Exception
|
30
|
+
# metadata - An Hash with arbitrary additional information (optional)
|
31
|
+
#
|
32
|
+
# Examples
|
33
|
+
#
|
34
|
+
# Trouble.log RuntimeError.new
|
35
|
+
# Trouble.log RuntimeError.new, some_idea_why_it_happened: "I don't know, but try this and that."
|
36
|
+
#
|
37
|
+
# Returns nothing.
|
38
|
+
#
|
39
|
+
def self.log(exception, metadata = nil)
|
40
|
+
exception.set_backtrace(caller) unless exception.backtrace
|
41
|
+
log_in_logger(exception, metadata)
|
23
42
|
increment_metric
|
24
43
|
end
|
25
44
|
|
@@ -27,8 +46,7 @@ module Trouble
|
|
27
46
|
|
28
47
|
# Internal: Dispatch the Exception to the backend(s).
|
29
48
|
#
|
30
|
-
def self.
|
31
|
-
log(exception, metadata) if config.logger
|
49
|
+
def self.notify_error_service(exception, metadata)
|
32
50
|
Bugsnag.notify(exception, metadata) if defined?(Bugsnag)
|
33
51
|
end
|
34
52
|
|
@@ -40,8 +58,8 @@ module Trouble
|
|
40
58
|
|
41
59
|
# Internal: Log to the current Logger.
|
42
60
|
#
|
43
|
-
def self.
|
44
|
-
config.logger.error
|
61
|
+
def self.log_in_logger(exception, metadata)
|
62
|
+
config.logger.error("TROUBLE LOG #{exception.inspect} at #{exception.backtrace.first} with metadata #{metadata.inspect}") if config.logger
|
45
63
|
end
|
46
64
|
|
47
65
|
end
|
data/spec/lib/trouble_spec.rb
CHANGED
@@ -38,15 +38,32 @@ describe Trouble do
|
|
38
38
|
Bugsnag.stub!(:notify)
|
39
39
|
end
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
trouble.notify exception, metadata
|
45
|
-
end
|
41
|
+
it 'uses Bugsnag as notification backend' do
|
42
|
+
Bugsnag.should_receive(:notify).with(exception, metadata)
|
43
|
+
trouble.notify exception, metadata
|
46
44
|
end
|
47
45
|
end
|
48
46
|
end
|
49
47
|
|
48
|
+
describe '.log' do
|
49
|
+
|
50
|
+
it 'does not notify the error service' do
|
51
|
+
Bugsnag.should_not_receive(:notify)
|
52
|
+
trouble.log exception, metadata
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'increments the metric' do
|
56
|
+
trouble.should_receive(:increment_metric)
|
57
|
+
trouble.log exception, metadata
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'logs with the configured logger' do
|
61
|
+
trouble.config.logger = logger
|
62
|
+
trouble.config.logger.should_receive(:error)
|
63
|
+
trouble.log exception, metadata
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
50
67
|
describe '.config' do
|
51
68
|
before do
|
52
69
|
Trouble.reset!
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trouble
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bukowskis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -95,3 +95,4 @@ signing_key:
|
|
95
95
|
specification_version: 4
|
96
96
|
summary: A generic abstraction layer for reporting errors and Exceptions.
|
97
97
|
test_files: []
|
98
|
+
has_rdoc:
|