airbrake-ruby 4.2.2 → 4.2.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of airbrake-ruby might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02aed346e7f188d5b5da63e5f193510f43b94b27
4
- data.tar.gz: e029092bdc54e5ead538ee74dbda4142e531e442
3
+ metadata.gz: e44217dd74500dcb6a84f67cd2f3804bc52bf597
4
+ data.tar.gz: 007ad1edd743e86514894f9535bb550370e26ca0
5
5
  SHA512:
6
- metadata.gz: 254d23e27fc94213edc957aff6db744e05142024c6e7d3962ccac40c464b2450656b035b1e3261aa4bcbe923a777ae8fe55eeca4a2de8f6bb8d232f89e06cc9d
7
- data.tar.gz: 2c417bfb7aca7750c0568e4f49da77c34c92e2b11600af44e66f2e2585d5cc06abe962fc8919ab4a1c70153038d70b504823d395ea8bdf2b5533a4617494fd3c
6
+ metadata.gz: 2305130e3028d248ff60ec68f730d3d6623ee830bba0cb7ab3f3977bc3faaa27cd9976936ed99c0747397291049f89654a89017e96d0ce4f10c9665c59165bab
7
+ data.tar.gz: 3ca66b9d6ca4790b520414e40fd76fb44e741361404e68213bae35fccb78dbdef3f4c3c8d8ebcc4044b6f3a32be31e2a6a9bc27def63903c22e4713d5f853712
@@ -79,6 +79,18 @@ module Airbrake
79
79
  # @see Airbrake.$0
80
80
 
81
81
  class << self
82
+ # @since v4.2.3
83
+ # @api private
84
+ attr_accessor :performance_notifier
85
+
86
+ # @since v4.2.3
87
+ # @api private
88
+ attr_accessor :notice_notifier
89
+
90
+ # @since v4.2.3
91
+ # @api private
92
+ attr_accessor :deploy_notifier
93
+
82
94
  # Configures the Airbrake notifier.
83
95
  #
84
96
  # @example
@@ -96,13 +108,16 @@ module Airbrake
96
108
  def configure
97
109
  yield config = Airbrake::Config.instance
98
110
  Airbrake::Loggable.instance = config.logger
111
+
112
+ return if performance_notifier && notice_notifier && deploy_notifier
113
+
99
114
  reset
100
115
  end
101
116
 
102
117
  # @return [Boolean] true if the notifier was configured, false otherwise
103
118
  # @since v2.3.0
104
119
  def configured?
105
- @notice_notifier.configured?
120
+ notice_notifier.configured?
106
121
  end
107
122
 
108
123
  # Sends an exception to Airbrake asynchronously.
@@ -127,7 +142,7 @@ module Airbrake
127
142
  # @return [Airbrake::Promise]
128
143
  # @see .notify_sync
129
144
  def notify(exception, params = {}, &block)
130
- @notice_notifier.notify(exception, params, &block)
145
+ notice_notifier.notify(exception, params, &block)
131
146
  end
132
147
 
133
148
  # Sends an exception to Airbrake synchronously.
@@ -147,7 +162,7 @@ module Airbrake
147
162
  # @return [Airbrake::Promise] the reponse from the server
148
163
  # @see .notify
149
164
  def notify_sync(exception, params = {}, &block)
150
- @notice_notifier.notify_sync(exception, params, &block)
165
+ notice_notifier.notify_sync(exception, params, &block)
151
166
  end
152
167
 
153
168
  # Runs a callback before {.notify} or {.notify_sync} kicks in. This is
@@ -175,7 +190,7 @@ module Airbrake
175
190
  # @yieldreturn [void]
176
191
  # @return [void]
177
192
  def add_filter(filter = nil, &block)
178
- @notice_notifier.add_filter(filter, &block)
193
+ notice_notifier.add_filter(filter, &block)
179
194
  end
180
195
 
181
196
  # Deletes a filter added via {Airbrake#add_filter}.
@@ -192,7 +207,7 @@ module Airbrake
192
207
  # @since v3.1.0
193
208
  # @note This method cannot delete filters assigned via the Proc form.
194
209
  def delete_filter(filter_class)
195
- @notice_notifier.delete_filter(filter_class)
210
+ notice_notifier.delete_filter(filter_class)
196
211
  end
197
212
 
198
213
  # Builds an Airbrake notice. This is useful, if you want to add or modify a
@@ -210,7 +225,7 @@ module Airbrake
210
225
  # @return [Airbrake::Notice] the notice built with help of the given
211
226
  # arguments
212
227
  def build_notice(exception, params = {})
213
- @notice_notifier.build_notice(exception, params)
228
+ notice_notifier.build_notice(exception, params)
214
229
  end
215
230
 
216
231
  # Makes the notice notifier a no-op, which means you cannot use the
@@ -223,7 +238,7 @@ module Airbrake
223
238
  #
224
239
  # @return [void]
225
240
  def close
226
- @notice_notifier.close
241
+ notice_notifier.close
227
242
  end
228
243
 
229
244
  # Pings the Airbrake Deploy API endpoint about the occurred deploy.
@@ -236,7 +251,7 @@ module Airbrake
236
251
  # @option deploy_info [Symbol] :version
237
252
  # @return [void]
238
253
  def notify_deploy(deploy_info)
239
- @deploy_notifier.notify(deploy_info)
254
+ deploy_notifier.notify(deploy_info)
240
255
  end
241
256
 
242
257
  # Merges +context+ with the current context.
@@ -284,7 +299,7 @@ module Airbrake
284
299
  # @param [Hash{Symbol=>Object}] context
285
300
  # @return [void]
286
301
  def merge_context(context)
287
- @notice_notifier.merge_context(context)
302
+ notice_notifier.merge_context(context)
288
303
  end
289
304
 
290
305
  # Increments request statistics of a certain +route+ that was invoked on
@@ -323,7 +338,7 @@ module Airbrake
323
338
  # @since v3.0.0
324
339
  # @see Airbrake::PerformanceNotifier#notify
325
340
  def notify_request(request_info)
326
- @performance_notifier.notify(Request.new(request_info))
341
+ performance_notifier.notify(Request.new(request_info))
327
342
  end
328
343
 
329
344
  # Increments SQL statistics of a certain +query+ that was invoked on
@@ -354,7 +369,7 @@ module Airbrake
354
369
  # @since v3.2.0
355
370
  # @see Airbrake::PerformanceNotifier#notify
356
371
  def notify_query(query_info)
357
- @performance_notifier.notify(Query.new(query_info))
372
+ performance_notifier.notify(Query.new(query_info))
358
373
  end
359
374
 
360
375
  # Increments performance breakdown statistics of a certain route.
@@ -378,7 +393,7 @@ module Airbrake
378
393
  # @return [void]
379
394
  # @since v4.2.0
380
395
  def notify_performance_breakdown(breakdown_info)
381
- @performance_notifier.notify(PerformanceBreakdown.new(breakdown_info))
396
+ performance_notifier.notify(PerformanceBreakdown.new(breakdown_info))
382
397
  end
383
398
 
384
399
  # Runs a callback before {.notify_request} or {.notify_query} kicks in. This
@@ -413,7 +428,7 @@ module Airbrake
413
428
  # @since v3.2.0
414
429
  # @see Airbrake::PerformanceNotifier#add_filter
415
430
  def add_performance_filter(filter = nil, &block)
416
- @performance_notifier.add_filter(filter, &block)
431
+ performance_notifier.add_filter(filter, &block)
417
432
  end
418
433
 
419
434
  # Deletes a filter added via {Airbrake#add_performance_filter}.
@@ -431,20 +446,22 @@ module Airbrake
431
446
  # @note This method cannot delete filters assigned via the Proc form.
432
447
  # @see Airbrake::PerformanceNotifier#delete_filter
433
448
  def delete_performance_filter(filter_class)
434
- @performance_notifier.delete_filter(filter_class)
449
+ performance_notifier.delete_filter(filter_class)
435
450
  end
436
451
 
437
452
  # Resets all notifiers, including its filters
438
453
  # @return [void]
439
454
  # @since v4.2.2
440
455
  def reset
441
- close if @notice_notifier && configured?
456
+ close if notice_notifier && configured?
442
457
 
443
- @performance_notifier = PerformanceNotifier.new
444
- @notice_notifier = NoticeNotifier.new
445
- @deploy_notifier = DeployNotifier.new
458
+ self.performance_notifier = PerformanceNotifier.new
459
+ self.notice_notifier = NoticeNotifier.new
460
+ self.deploy_notifier = DeployNotifier.new
446
461
  end
447
462
  end
448
463
  end
449
464
 
450
- Airbrake.reset
465
+ Airbrake.configure do
466
+ # Initialize Airbrake with default notifiers.
467
+ end
@@ -2,5 +2,5 @@
2
2
  # More information: http://semver.org/
3
3
  module Airbrake
4
4
  # @return [String] the library version
5
- AIRBRAKE_RUBY_VERSION = '4.2.2'.freeze
5
+ AIRBRAKE_RUBY_VERSION = '4.2.3'.freeze
6
6
  end
@@ -1,12 +1,24 @@
1
1
  RSpec.describe Airbrake do
2
- before do
3
- Airbrake::Config.instance = Airbrake::Config.new
4
- described_class.reset
2
+ it "gets initialized with a performance notifier" do
3
+ expect(described_class.performance_notifier).not_to be_nil
5
4
  end
6
5
 
7
- after { described_class.reset }
6
+ it "gets initialized with a notice notifier" do
7
+ expect(described_class.notice_notifier).not_to be_nil
8
+ end
9
+
10
+ it "gets initialized with a deploy notifier" do
11
+ expect(described_class.deploy_notifier).not_to be_nil
12
+ end
8
13
 
9
14
  describe ".configure" do
15
+ before do
16
+ Airbrake::Config.instance = Airbrake::Config.new
17
+ described_class.reset
18
+ end
19
+
20
+ after { described_class.reset }
21
+
10
22
  it "yields the config" do
11
23
  expect do |b|
12
24
  begin
@@ -41,18 +53,18 @@ RSpec.describe Airbrake do
41
53
 
42
54
  context "when a notifier was configured" do
43
55
  before do
44
- expect(described_class).to receive(:configured?).twice.and_return(true)
56
+ expect(described_class).to receive(:configured?).and_return(true)
45
57
  end
46
58
 
47
59
  it "closes previously configured notice notifier" do
48
- expect(described_class).to receive(:close).twice
60
+ expect(described_class).to receive(:close)
49
61
  described_class.configure {}
50
62
  end
51
63
  end
52
64
 
53
65
  context "when a notifier wasn't configured" do
54
66
  before do
55
- expect(described_class).to receive(:configured?).twice.and_return(false)
67
+ expect(described_class).to receive(:configured?).and_return(false)
56
68
  end
57
69
 
58
70
  it "doesn't close previously configured notice notifier" do
@@ -60,16 +72,42 @@ RSpec.describe Airbrake do
60
72
  described_class.configure {}
61
73
  end
62
74
  end
75
+
76
+ context "when called multiple times" do
77
+ it "doesn't overwrite performance notifier" do
78
+ described_class.configure {}
79
+ performance_notifier = described_class.performance_notifier
80
+
81
+ described_class.configure {}
82
+ expect(described_class.performance_notifier).to eql(performance_notifier)
83
+ end
84
+
85
+ it "doesn't overwrite notice notifier" do
86
+ described_class.configure {}
87
+ notice_notifier = described_class.notice_notifier
88
+
89
+ described_class.configure {}
90
+ expect(described_class.notice_notifier).to eql(notice_notifier)
91
+ end
92
+
93
+ it "doesn't overwrite deploy notifier" do
94
+ described_class.configure {}
95
+ deploy_notifier = described_class.deploy_notifier
96
+
97
+ described_class.configure {}
98
+ expect(described_class.deploy_notifier).to eql(deploy_notifier)
99
+ end
100
+ end
63
101
  end
64
102
 
65
103
  describe "#reset" do
66
104
  context "when Airbrake was previously configured" do
67
105
  before do
68
- expect(described_class).to receive(:configured?).twice.and_return(true)
106
+ expect(described_class).to receive(:configured?).and_return(true)
69
107
  end
70
108
 
71
109
  it "closes notice notifier" do
72
- expect(described_class).to receive(:close).twice
110
+ expect(described_class).to receive(:close)
73
111
  subject.reset
74
112
  end
75
113
  end
@@ -1,7 +1,9 @@
1
1
  RSpec.describe Airbrake::Filters::GitRevisionFilter do
2
2
  subject { described_class.new('root/dir') }
3
3
 
4
- let(:notice) { Airbrake::Notice.new(AirbrakeTestError.new) }
4
+ # 'let!', not 'let' to make sure Notice doesn't call File.exist? with
5
+ # unexpected arguments.
6
+ let!(:notice) { Airbrake::Notice.new(AirbrakeTestError.new) }
5
7
 
6
8
  context "when context/revision is defined" do
7
9
  it "doesn't attach anything to context/revision" 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: 4.2.2
4
+ version: 4.2.3
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: 2019-03-27 00:00:00.000000000 Z
11
+ date: 2019-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbtree3