airbrake-ruby 2.1.0 → 2.2.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/lib/airbrake-ruby.rb +15 -4
- data/lib/airbrake-ruby/notice.rb +7 -1
- data/lib/airbrake-ruby/notifier.rb +6 -4
- data/lib/airbrake-ruby/version.rb +1 -1
- data/spec/airbrake_spec.rb +24 -0
- data/spec/notice_spec.rb +4 -0
- data/spec/notifier_spec.rb +7 -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: 85e069b4c88a953affccceafa0e250aee3c34367
|
4
|
+
data.tar.gz: 349b91844712169716c97ba606cdebf6e200e908
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4fdabb0447a4c8b0ca06a45cb8ce371d35805c191253edec1bda3fd0581f60ae5382efbf7d64b56f5845d9444fcd145c73844c6dba94abbcff5b94aad00de8f
|
7
|
+
data.tar.gz: 4662128a6ad57a91659539296229fe7c0b824a6049abb32f64f9ab883be919a4ced5af56f38a3c768016b4477844eef5db30a600dceca0daa9c9e9822af973ef
|
data/lib/airbrake-ruby.rb
CHANGED
@@ -153,10 +153,13 @@ module Airbrake
|
|
153
153
|
# @param [Hash] params The additional payload to be sent to Airbrake. Can
|
154
154
|
# contain any values. The provided values will be displayed in the Params
|
155
155
|
# tab in your project's dashboard
|
156
|
+
# @yield [notice] The notice to filter
|
157
|
+
# @yieldparam [Airbrake::Notice]
|
158
|
+
# @yieldreturn [void]
|
156
159
|
# @return [Airbrake::Promise]
|
157
160
|
# @see .notify_sync
|
158
|
-
def notify(exception, params = {})
|
159
|
-
@notifiers[:default].notify(exception, params)
|
161
|
+
def notify(exception, params = {}, &block)
|
162
|
+
@notifiers[:default].notify(exception, params, &block)
|
160
163
|
end
|
161
164
|
|
162
165
|
##
|
@@ -166,10 +169,18 @@ module Airbrake
|
|
166
169
|
# Airbrake.notify_sync('App crashed!')
|
167
170
|
# #=> {"id"=>"123", "url"=>"https://airbrake.io/locate/321"}
|
168
171
|
#
|
172
|
+
# @param [Exception, String, Airbrake::Notice] exception The exception to be
|
173
|
+
# sent to Airbrake
|
174
|
+
# @param [Hash] params The additional payload to be sent to Airbrake. Can
|
175
|
+
# contain any values. The provided values will be displayed in the Params
|
176
|
+
# tab in your project's dashboard
|
177
|
+
# @yield [notice] The notice to filter
|
178
|
+
# @yieldparam [Airbrake::Notice]
|
179
|
+
# @yieldreturn [void]
|
169
180
|
# @return [Hash{String=>String}] the reponse from the server
|
170
181
|
# @see .notify
|
171
|
-
def notify_sync(exception, params = {})
|
172
|
-
@notifiers[:default].notify_sync(exception, params)
|
182
|
+
def notify_sync(exception, params = {}, &block)
|
183
|
+
@notifiers[:default].notify_sync(exception, params, &block)
|
173
184
|
end
|
174
185
|
|
175
186
|
##
|
data/lib/airbrake-ruby/notice.rb
CHANGED
@@ -56,6 +56,10 @@ module Airbrake
|
|
56
56
|
# @return [String] the name of the host machine
|
57
57
|
HOSTNAME = Socket.gethostname.freeze
|
58
58
|
|
59
|
+
##
|
60
|
+
# @return [String]
|
61
|
+
DEFAULT_SEVERITY = 'error'.freeze
|
62
|
+
|
59
63
|
##
|
60
64
|
# @since v1.7.0
|
61
65
|
# @return [Hash{Symbol=>Object}] the hash with arbitrary objects to be used
|
@@ -158,7 +162,9 @@ module Airbrake
|
|
158
162
|
environment: @config.environment,
|
159
163
|
|
160
164
|
# Make sure we always send hostname.
|
161
|
-
hostname: HOSTNAME
|
165
|
+
hostname: HOSTNAME,
|
166
|
+
|
167
|
+
severity: DEFAULT_SEVERITY
|
162
168
|
}.merge(CONTEXT).delete_if { |_key, val| val.nil? || val.empty? }
|
163
169
|
end
|
164
170
|
|
@@ -47,14 +47,14 @@ module Airbrake
|
|
47
47
|
|
48
48
|
##
|
49
49
|
# @macro see_public_api_method
|
50
|
-
def notify(exception, params = {})
|
51
|
-
send_notice(exception, params, default_sender)
|
50
|
+
def notify(exception, params = {}, &block)
|
51
|
+
send_notice(exception, params, default_sender, &block)
|
52
52
|
end
|
53
53
|
|
54
54
|
##
|
55
55
|
# @macro see_public_api_method
|
56
|
-
def notify_sync(exception, params = {})
|
57
|
-
send_notice(exception, params, @sync_sender).value
|
56
|
+
def notify_sync(exception, params = {}, &block)
|
57
|
+
send_notice(exception, params, @sync_sender, &block).value
|
58
58
|
end
|
59
59
|
|
60
60
|
##
|
@@ -119,6 +119,8 @@ module Airbrake
|
|
119
119
|
|
120
120
|
notice = build_notice(exception, params)
|
121
121
|
@filter_chain.refine(notice)
|
122
|
+
yield notice if block_given?
|
123
|
+
|
122
124
|
if notice.ignored?
|
123
125
|
return promise.reject("#{notice} was marked as ignored")
|
124
126
|
end
|
data/spec/airbrake_spec.rb
CHANGED
@@ -41,6 +41,19 @@ RSpec.describe Airbrake do
|
|
41
41
|
sleep 2
|
42
42
|
expect(a_request(:post, endpoint)).to have_been_made.once
|
43
43
|
end
|
44
|
+
|
45
|
+
it "yields a notice" do
|
46
|
+
described_class.notify('bongo') do |notice|
|
47
|
+
notice[:params][:bingo] = :bango
|
48
|
+
end
|
49
|
+
|
50
|
+
sleep 1
|
51
|
+
|
52
|
+
expect(
|
53
|
+
a_request(:post, endpoint).
|
54
|
+
with(body: /params":{.*"bingo":"bango".*}/)
|
55
|
+
).to have_been_made.once
|
56
|
+
end
|
44
57
|
end
|
45
58
|
|
46
59
|
describe ".notify_sync" do
|
@@ -51,6 +64,17 @@ RSpec.describe Airbrake do
|
|
51
64
|
expect(a_request(:post, endpoint)).to have_been_made.once
|
52
65
|
end
|
53
66
|
|
67
|
+
it "yields a notice" do
|
68
|
+
described_class.notify_sync('bongo') do |notice|
|
69
|
+
notice[:params][:bingo] = :bango
|
70
|
+
end
|
71
|
+
|
72
|
+
expect(
|
73
|
+
a_request(:post, endpoint).
|
74
|
+
with(body: /params":{.*"bingo":"bango".*}/)
|
75
|
+
).to have_been_made.once
|
76
|
+
end
|
77
|
+
|
54
78
|
describe "clean backtrace" do
|
55
79
|
shared_examples 'backtrace building' do |msg, argument|
|
56
80
|
it(msg) do
|
data/spec/notice_spec.rb
CHANGED
@@ -200,6 +200,10 @@ RSpec.describe Airbrake::Notice do
|
|
200
200
|
expect(notice.to_json).
|
201
201
|
to match(/"context":{.*"hostname":".+".*}/)
|
202
202
|
end
|
203
|
+
|
204
|
+
it "defaults to the error severity" do
|
205
|
+
expect(notice.to_json).to match(/"context":{.*"severity":"error".*}/)
|
206
|
+
end
|
203
207
|
end
|
204
208
|
|
205
209
|
describe "#[]" do
|
data/spec/notifier_spec.rb
CHANGED
@@ -378,6 +378,13 @@ RSpec.describe Airbrake::Notifier do
|
|
378
378
|
end
|
379
379
|
end
|
380
380
|
end
|
381
|
+
|
382
|
+
describe "block argument" do
|
383
|
+
it "yields a notice" do
|
384
|
+
@airbrake.notify_sync(ex) { |notice| notice[:params][:bingo] = :bango }
|
385
|
+
expect_a_request_with_body(/params":{.*"bingo":"bango".*}/)
|
386
|
+
end
|
387
|
+
end
|
381
388
|
end
|
382
389
|
|
383
390
|
describe "#notify" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: airbrake-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airbrake Technologies, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|