airbrake-ruby 5.0.1 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/airbrake-ruby.rb +4 -2
  3. data/lib/airbrake-ruby/async_sender.rb +3 -1
  4. data/lib/airbrake-ruby/config.rb +15 -6
  5. data/lib/airbrake-ruby/config/processor.rb +7 -20
  6. data/lib/airbrake-ruby/context.rb +51 -0
  7. data/lib/airbrake-ruby/file_cache.rb +1 -1
  8. data/lib/airbrake-ruby/filter_chain.rb +2 -0
  9. data/lib/airbrake-ruby/filters/context_filter.rb +4 -5
  10. data/lib/airbrake-ruby/filters/exception_attributes_filter.rb +1 -1
  11. data/lib/airbrake-ruby/filters/git_last_checkout_filter.rb +1 -1
  12. data/lib/airbrake-ruby/filters/git_revision_filter.rb +1 -1
  13. data/lib/airbrake-ruby/filters/keys_filter.rb +2 -2
  14. data/lib/airbrake-ruby/filters/sql_filter.rb +2 -2
  15. data/lib/airbrake-ruby/filters/thread_filter.rb +2 -3
  16. data/lib/airbrake-ruby/grouppable.rb +1 -1
  17. data/lib/airbrake-ruby/ignorable.rb +0 -2
  18. data/lib/airbrake-ruby/mergeable.rb +1 -1
  19. data/lib/airbrake-ruby/notice_notifier.rb +3 -4
  20. data/lib/airbrake-ruby/performance_notifier.rb +1 -2
  21. data/lib/airbrake-ruby/remote_settings.rb +10 -50
  22. data/lib/airbrake-ruby/remote_settings/callback.rb +44 -0
  23. data/lib/airbrake-ruby/remote_settings/settings_data.rb +3 -8
  24. data/lib/airbrake-ruby/tdigest.rb +7 -6
  25. data/lib/airbrake-ruby/thread_pool.rb +5 -3
  26. data/lib/airbrake-ruby/timed_trace.rb +1 -3
  27. data/lib/airbrake-ruby/version.rb +2 -2
  28. data/spec/airbrake_spec.rb +139 -76
  29. data/spec/async_sender_spec.rb +10 -8
  30. data/spec/backtrace_spec.rb +13 -10
  31. data/spec/benchmark_spec.rb +5 -3
  32. data/spec/code_hunk_spec.rb +24 -15
  33. data/spec/config/processor_spec.rb +29 -87
  34. data/spec/config/validator_spec.rb +5 -2
  35. data/spec/config_spec.rb +26 -17
  36. data/spec/context_spec.rb +54 -0
  37. data/spec/deploy_notifier_spec.rb +6 -4
  38. data/spec/file_cache_spec.rb +1 -0
  39. data/spec/filter_chain_spec.rb +29 -24
  40. data/spec/filters/context_filter_spec.rb +14 -5
  41. data/spec/filters/dependency_filter_spec.rb +3 -1
  42. data/spec/filters/exception_attributes_filter_spec.rb +5 -3
  43. data/spec/filters/gem_root_filter_spec.rb +5 -2
  44. data/spec/filters/git_last_checkout_filter_spec.rb +10 -12
  45. data/spec/filters/git_repository_filter.rb +9 -9
  46. data/spec/filters/git_revision_filter_spec.rb +19 -19
  47. data/spec/filters/keys_allowlist_spec.rb +25 -16
  48. data/spec/filters/keys_blocklist_spec.rb +25 -18
  49. data/spec/filters/root_directory_filter_spec.rb +3 -3
  50. data/spec/filters/sql_filter_spec.rb +26 -26
  51. data/spec/filters/system_exit_filter_spec.rb +4 -2
  52. data/spec/filters/thread_filter_spec.rb +16 -14
  53. data/spec/loggable_spec.rb +2 -2
  54. data/spec/monotonic_time_spec.rb +8 -6
  55. data/spec/nested_exception_spec.rb +46 -46
  56. data/spec/notice_notifier/options_spec.rb +23 -13
  57. data/spec/notice_notifier_spec.rb +52 -47
  58. data/spec/notice_spec.rb +6 -2
  59. data/spec/performance_notifier_spec.rb +67 -60
  60. data/spec/promise_spec.rb +38 -32
  61. data/spec/remote_settings/callback_spec.rb +162 -0
  62. data/spec/remote_settings/settings_data_spec.rb +23 -53
  63. data/spec/remote_settings_spec.rb +42 -75
  64. data/spec/response_spec.rb +34 -12
  65. data/spec/stashable_spec.rb +5 -5
  66. data/spec/stat_spec.rb +7 -5
  67. data/spec/sync_sender_spec.rb +49 -16
  68. data/spec/tdigest_spec.rb +61 -56
  69. data/spec/thread_pool_spec.rb +65 -55
  70. data/spec/time_truncate_spec.rb +4 -2
  71. data/spec/timed_trace_spec.rb +32 -30
  72. data/spec/truncator_spec.rb +72 -43
  73. metadata +53 -47
@@ -2,12 +2,14 @@ RSpec.describe Airbrake::TimeTruncate do
2
2
  describe "#utc_truncate_minutes" do
3
3
  it "truncates time to the floor minute and returns an RFC3339 timestamp" do
4
4
  time = Time.new(2018, 1, 1, 0, 0, 20, 0)
5
- expect(subject.utc_truncate_minutes(time)).to eq('2018-01-01T00:00:00+00:00')
5
+ expect(described_class.utc_truncate_minutes(time))
6
+ .to eq('2018-01-01T00:00:00+00:00')
6
7
  end
7
8
 
8
9
  it "converts time with zone to UTC" do
9
10
  time = Time.new(2018, 1, 1, 0, 0, 20, '-05:00')
10
- expect(subject.utc_truncate_minutes(time)).to eq('2018-01-01T05:00:00+00:00')
11
+ expect(described_class.utc_truncate_minutes(time))
12
+ .to eq('2018-01-01T05:00:00+00:00')
11
13
  end
12
14
  end
13
15
  end
@@ -1,50 +1,52 @@
1
1
  RSpec.describe Airbrake::TimedTrace do
2
+ subject(:timed_trace) { described_class.new }
3
+
2
4
  describe ".span" do
3
5
  it "returns a timed trace" do
4
- expect(described_class.span('operation') {}).to be_a(described_class)
6
+ expect(described_class.span('operation') { anything }).to be_a(described_class)
5
7
  end
6
8
 
7
9
  it "returns a timed trace with a stopped span" do
8
- timed_trace = described_class.span('operation') {}
10
+ timed_trace = described_class.span('operation') { anything }
9
11
  expect(timed_trace.spans).to match('operation' => be > 0)
10
12
  end
11
13
  end
12
14
 
13
15
  describe "#span" do
14
16
  it "captures a span" do
15
- subject.span('operation') {}
16
- expect(subject.spans).to match('operation' => be > 0)
17
+ timed_trace.span('operation') { anything }
18
+ expect(timed_trace.spans).to match('operation' => be > 0)
17
19
  end
18
20
  end
19
21
 
20
22
  describe "#start_span" do
21
23
  context "when called once" do
22
24
  it "returns true" do
23
- expect(subject.start_span('operation')).to eq(true)
25
+ expect(timed_trace.start_span('operation')).to eq(true)
24
26
  end
25
27
  end
26
28
 
27
29
  context "when called multiple times" do
28
- before { subject.start_span('operation') }
30
+ before { timed_trace.start_span('operation') }
29
31
 
30
32
  it "returns false" do
31
- expect(subject.start_span('operation')).to eq(false)
33
+ expect(timed_trace.start_span('operation')).to eq(false)
32
34
  end
33
35
  end
34
36
 
35
37
  context "when another span was started" do
36
- before { subject.start_span('operation') }
38
+ before { timed_trace.start_span('operation') }
37
39
 
38
40
  it "returns true" do
39
- expect(subject.start_span('another operation')).to eq(true)
41
+ expect(timed_trace.start_span('another operation')).to eq(true)
40
42
  end
41
43
  end
42
44
 
43
45
  context "when #spans was called" do
44
- before { subject.start_span('operation') }
46
+ before { timed_trace.start_span('operation') }
45
47
 
46
48
  it "returns spans with zero values" do
47
- expect(subject.spans).to eq('operation' => 0.0)
49
+ expect(timed_trace.spans).to eq('operation' => 0.0)
48
50
  end
49
51
  end
50
52
  end
@@ -52,35 +54,35 @@ RSpec.describe Airbrake::TimedTrace do
52
54
  describe "#stop_span" do
53
55
  context "when #start_span wasn't invoked" do
54
56
  it "returns false" do
55
- expect(subject.stop_span('operation')).to eq(false)
57
+ expect(timed_trace.stop_span('operation')).to eq(false)
56
58
  end
57
59
  end
58
60
 
59
61
  context "when #start_span was invoked" do
60
- before { subject.start_span('operation') }
62
+ before { timed_trace.start_span('operation') }
61
63
 
62
64
  it "returns true" do
63
- expect(subject.stop_span('operation')).to eq(true)
65
+ expect(timed_trace.stop_span('operation')).to eq(true)
64
66
  end
65
67
  end
66
68
 
67
69
  context "when multiple spans were started" do
68
70
  before do
69
- subject.start_span('operation')
70
- subject.start_span('another operation')
71
+ timed_trace.start_span('operation')
72
+ timed_trace.start_span('another operation')
71
73
  end
72
74
 
73
75
  context "and when stopping in LIFO order" do
74
76
  it "returns true for all spans" do
75
- expect(subject.stop_span('another operation')).to eq(true)
76
- expect(subject.stop_span('operation')).to eq(true)
77
+ expect(timed_trace.stop_span('another operation')).to eq(true)
78
+ expect(timed_trace.stop_span('operation')).to eq(true)
77
79
  end
78
80
  end
79
81
 
80
82
  context "and when stopping in FIFO order" do
81
83
  it "returns true for all spans" do
82
- expect(subject.stop_span('operation')).to eq(true)
83
- expect(subject.stop_span('another operation')).to eq(true)
84
+ expect(timed_trace.stop_span('operation')).to eq(true)
85
+ expect(timed_trace.stop_span('another operation')).to eq(true)
84
86
  end
85
87
  end
86
88
  end
@@ -89,33 +91,33 @@ RSpec.describe Airbrake::TimedTrace do
89
91
  describe "#spans" do
90
92
  context "when no spans were captured" do
91
93
  it "returns an empty hash" do
92
- expect(subject.spans).to eq({})
94
+ expect(timed_trace.spans).to eq({})
93
95
  end
94
96
  end
95
97
 
96
98
  context "when a span was captured" do
97
99
  before do
98
- subject.start_span('operation')
99
- subject.stop_span('operation')
100
+ timed_trace.start_span('operation')
101
+ timed_trace.stop_span('operation')
100
102
  end
101
103
 
102
104
  it "returns a Hash with the corresponding span" do
103
- subject.stop_span('operation')
104
- expect(subject.spans).to match('operation' => be > 0)
105
+ timed_trace.stop_span('operation')
106
+ expect(timed_trace.spans).to match('operation' => be > 0)
105
107
  end
106
108
  end
107
109
 
108
110
  context "when multiple spans were captured" do
109
111
  before do
110
- subject.start_span('operation')
111
- subject.stop_span('operation')
112
+ timed_trace.start_span('operation')
113
+ timed_trace.stop_span('operation')
112
114
 
113
- subject.start_span('another operation')
114
- subject.stop_span('another operation')
115
+ timed_trace.start_span('another operation')
116
+ timed_trace.stop_span('another operation')
115
117
  end
116
118
 
117
119
  it "returns a Hash with all spans" do
118
- expect(subject.spans).to match(
120
+ expect(timed_trace.spans).to match(
119
121
  'operation' => be > 0,
120
122
  'another operation' => be > 0,
121
123
  )
@@ -4,18 +4,18 @@ RSpec.describe Airbrake::Truncator do
4
4
  end
5
5
 
6
6
  describe "#truncate" do
7
+ subject(:truncator) { described_class.new(max_size).truncate(object) }
8
+
7
9
  let(:max_size) { 3 }
8
10
  let(:truncated) { '[Truncated]' }
9
11
  let(:max_len) { max_size + truncated.length }
10
12
 
11
- subject { described_class.new(max_size).truncate(object) }
12
-
13
13
  context "given a frozen string" do
14
14
  let(:object) { multiply_by_2_max_len('a') }
15
15
 
16
16
  it "returns a new truncated frozen string" do
17
- expect(subject.length).to eq(max_len)
18
- expect(subject).to be_frozen
17
+ expect(truncator.length).to eq(max_len)
18
+ expect(truncator).to be_frozen
19
19
  end
20
20
  end
21
21
 
@@ -29,16 +29,27 @@ RSpec.describe Airbrake::Truncator do
29
29
  }.freeze
30
30
  end
31
31
 
32
- it "returns a new truncated frozen hash" do
33
- expect(subject.size).to eq(max_size)
34
- expect(subject).to be_frozen
32
+ it "returns a hash of the same size" do
33
+ expect(truncator.size).to eq(max_size)
34
+ end
35
35
 
36
- expect(subject).to eq(
36
+ it "returns a frozen hash" do
37
+ expect(truncator).to be_frozen
38
+ end
39
+
40
+ it "returns a hash with truncated values" do
41
+ expect(truncator).to eq(
37
42
  banana: 'aaa[Truncated]', kiwi: 'bbb[Truncated]', strawberry: 'c',
38
43
  )
39
- expect(subject[:banana]).to be_frozen
40
- expect(subject[:kiwi]).to be_frozen
41
- expect(subject[:strawberry]).not_to be_frozen
44
+ end
45
+
46
+ it "returns a hash with truncated strings that are frozen" do
47
+ expect(truncator[:banana]).to be_frozen
48
+ expect(truncator[:kiwi]).to be_frozen
49
+ end
50
+
51
+ it "returns a hash unfrozen untruncated strings" do
52
+ expect(truncator[:strawberry]).not_to be_frozen
42
53
  end
43
54
  end
44
55
 
@@ -52,14 +63,25 @@ RSpec.describe Airbrake::Truncator do
52
63
  ].freeze
53
64
  end
54
65
 
55
- it "returns a new truncated frozen array" do
56
- expect(subject.size).to eq(max_size)
57
- expect(subject).to be_frozen
66
+ it "returns an array of the same size" do
67
+ expect(truncator.size).to eq(max_size)
68
+ end
69
+
70
+ it "returns a frozen array" do
71
+ expect(truncator).to be_frozen
72
+ end
58
73
 
59
- expect(subject).to eq(['aaa[Truncated]', 'b', 'ccc[Truncated]'])
60
- expect(subject[0]).to be_frozen
61
- expect(subject[1]).not_to be_frozen
62
- expect(subject[2]).to be_frozen
74
+ it "returns an array with truncated values" do
75
+ expect(truncator).to eq(['aaa[Truncated]', 'b', 'ccc[Truncated]'])
76
+ end
77
+
78
+ it "returns an array with truncated strings that are frozen" do
79
+ expect(truncator[0]).to be_frozen
80
+ expect(truncator[2]).to be_frozen
81
+ end
82
+
83
+ it "returns an array with unfrozen untruncated strings" do
84
+ expect(truncator[1]).not_to be_frozen
63
85
  end
64
86
  end
65
87
 
@@ -73,14 +95,16 @@ RSpec.describe Airbrake::Truncator do
73
95
  ]).freeze
74
96
  end
75
97
 
76
- it "returns a new truncated frozen array" do
77
- expect(subject.size).to eq(max_size)
78
- expect(subject).to be_frozen
98
+ it "returns a set of the same size" do
99
+ expect(truncator.size).to eq(max_size)
100
+ end
79
101
 
80
- expect(subject).to eq(
81
- Set.new(['aaa[Truncated]', 'b', 'ccc[Truncated]']),
82
- )
83
- expect(subject).to be_frozen
102
+ it "returns a frozen set" do
103
+ expect(truncator).to be_frozen
104
+ end
105
+
106
+ it "returns a set with truncated values" do
107
+ expect(truncator).to eq(Set.new(['aaa[Truncated]', 'b', 'ccc[Truncated]']))
84
108
  end
85
109
  end
86
110
 
@@ -93,11 +117,16 @@ RSpec.describe Airbrake::Truncator do
93
117
  obj.freeze
94
118
  end
95
119
 
96
- it "converts the object to truncated JSON" do
97
- expect(subject.length).to eq(max_len)
98
- expect(subject).to be_frozen
120
+ it "returns a string of a max len size" do
121
+ expect(truncator.length).to eq(max_len)
122
+ end
99
123
 
100
- expect(subject).to eq('{"o[Truncated]')
124
+ it "returns a frozen object" do
125
+ expect(truncator).to be_frozen
126
+ end
127
+
128
+ it "converts the object to truncated JSON" do
129
+ expect(truncator).to eq('{"o[Truncated]')
101
130
  end
102
131
  end
103
132
 
@@ -110,8 +139,8 @@ RSpec.describe Airbrake::Truncator do
110
139
  end
111
140
 
112
141
  it "converts the object to a truncated string" do
113
- expect(subject.length).to eq(max_len)
114
- expect(subject).to eq('#<O[Truncated]')
142
+ expect(truncator.length).to eq(max_len)
143
+ expect(truncator).to eq('#<O[Truncated]')
115
144
  end
116
145
  end
117
146
 
@@ -134,7 +163,7 @@ RSpec.describe Airbrake::Truncator do
134
163
  end
135
164
 
136
165
  it "prevents recursion" do
137
- expect(subject).to eq(['aaa[Truncated]', 'bb', '[Circular]'])
166
+ expect(truncator).to eq(['aaa[Truncated]', 'bb', '[Circular]'])
138
167
  end
139
168
  end
140
169
 
@@ -149,8 +178,8 @@ RSpec.describe Airbrake::Truncator do
149
178
  end
150
179
 
151
180
  it "prevents recursion" do
152
- expect(subject).to eq(['[Circular]', { k: '[Circular]' }, 'aaa[Truncated]'])
153
- expect(subject).to be_frozen
181
+ expect(truncator).to eq(['[Circular]', { k: '[Circular]' }, 'aaa[Truncated]'])
182
+ expect(truncator).to be_frozen
154
183
  end
155
184
  end
156
185
 
@@ -165,10 +194,10 @@ RSpec.describe Airbrake::Truncator do
165
194
  end
166
195
 
167
196
  it "prevents recursion" do
168
- expect(subject).to eq(
197
+ expect(truncator).to eq(
169
198
  Set.new(['[Circular]', { k: '[Circular]' }, 'aaa[Truncated]']),
170
199
  )
171
- expect(subject).to be_frozen
200
+ expect(truncator).to be_frozen
172
201
  end
173
202
  end
174
203
 
@@ -182,10 +211,10 @@ RSpec.describe Airbrake::Truncator do
182
211
  end
183
212
 
184
213
  it "truncates the long strings" do
185
- expect(subject).to eq(
214
+ expect(truncator).to eq(
186
215
  a: 'aaa[Truncated]', b: 'bbb[Truncated]', c: { d: 'ddd[Truncated]', e: 'e' },
187
216
  )
188
- expect(subject).to be_frozen
217
+ expect(truncator).to be_frozen
189
218
  end
190
219
  end
191
220
 
@@ -193,7 +222,7 @@ RSpec.describe Airbrake::Truncator do
193
222
  let(:object) { "€€€€€" }
194
223
 
195
224
  it "truncates the string" do
196
- expect(subject).to eq("€€€[Truncated]")
225
+ expect(truncator).to eq("€€€[Truncated]")
197
226
  end
198
227
  end
199
228
 
@@ -205,8 +234,8 @@ RSpec.describe Airbrake::Truncator do
205
234
  end
206
235
 
207
236
  it "converts and truncates the string to UTF-8" do
208
- expect(subject).to eq("���[Truncated]")
209
- expect(subject).to be_frozen
237
+ expect(truncator).to eq("���[Truncated]")
238
+ expect(truncator).to be_frozen
210
239
  end
211
240
  end
212
241
 
@@ -224,14 +253,14 @@ RSpec.describe Airbrake::Truncator do
224
253
  end
225
254
 
226
255
  it "truncates values" do
227
- expect(subject).to eq(
256
+ expect(truncator).to eq(
228
257
  errors: [
229
258
  { file: 'a' },
230
259
  { file: 'a' },
231
260
  hashie.new.merge(file: 'bcd[Truncated]'),
232
261
  ],
233
262
  )
234
- expect(subject).to be_frozen
263
+ expect(truncator).to be_frozen
235
264
  end
236
265
  end
237
266
  end
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: 5.0.1
4
+ version: 5.2.1
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: 2020-08-17 00:00:00.000000000 Z
11
+ date: 2021-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbtree3
@@ -46,6 +46,7 @@ files:
46
46
  - lib/airbrake-ruby/config.rb
47
47
  - lib/airbrake-ruby/config/processor.rb
48
48
  - lib/airbrake-ruby/config/validator.rb
49
+ - lib/airbrake-ruby/context.rb
49
50
  - lib/airbrake-ruby/deploy_notifier.rb
50
51
  - lib/airbrake-ruby/file_cache.rb
51
52
  - lib/airbrake-ruby/filter_chain.rb
@@ -79,6 +80,7 @@ files:
79
80
  - lib/airbrake-ruby/query.rb
80
81
  - lib/airbrake-ruby/queue.rb
81
82
  - lib/airbrake-ruby/remote_settings.rb
83
+ - lib/airbrake-ruby/remote_settings/callback.rb
82
84
  - lib/airbrake-ruby/remote_settings/settings_data.rb
83
85
  - lib/airbrake-ruby/request.rb
84
86
  - lib/airbrake-ruby/response.rb
@@ -99,6 +101,7 @@ files:
99
101
  - spec/config/processor_spec.rb
100
102
  - spec/config/validator_spec.rb
101
103
  - spec/config_spec.rb
104
+ - spec/context_spec.rb
102
105
  - spec/deploy_notifier_spec.rb
103
106
  - spec/file_cache_spec.rb
104
107
  - spec/filter_chain_spec.rb
@@ -135,6 +138,7 @@ files:
135
138
  - spec/promise_spec.rb
136
139
  - spec/query_spec.rb
137
140
  - spec/queue_spec.rb
141
+ - spec/remote_settings/callback_spec.rb
138
142
  - spec/remote_settings/settings_data_spec.rb
139
143
  - spec/remote_settings_spec.rb
140
144
  - spec/request_spec.rb
@@ -167,65 +171,67 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
171
  - !ruby/object:Gem::Version
168
172
  version: '0'
169
173
  requirements: []
170
- rubygems_version: 3.1.2
174
+ rubygems_version: 3.2.15
171
175
  signing_key:
172
176
  specification_version: 4
173
177
  summary: Ruby notifier for https://airbrake.io
174
178
  test_files:
175
- - spec/truncator_spec.rb
176
- - spec/benchmark_spec.rb
177
- - spec/helpers.rb
178
- - spec/filters/exception_attributes_filter_spec.rb
179
- - spec/filters/root_directory_filter_spec.rb
180
- - spec/filters/sql_filter_spec.rb
181
- - spec/filters/system_exit_filter_spec.rb
182
- - spec/filters/thread_filter_spec.rb
183
- - spec/filters/keys_allowlist_spec.rb
184
- - spec/filters/dependency_filter_spec.rb
185
- - spec/filters/context_filter_spec.rb
186
- - spec/filters/git_last_checkout_filter_spec.rb
187
- - spec/filters/git_revision_filter_spec.rb
188
- - spec/filters/keys_blocklist_spec.rb
189
- - spec/filters/gem_root_filter_spec.rb
190
- - spec/filters/git_repository_filter.rb
191
- - spec/spec_helper.rb
192
- - spec/notice_spec.rb
193
- - spec/config_spec.rb
194
- - spec/performance_breakdown_spec.rb
195
- - spec/tdigest_spec.rb
179
+ - spec/airbrake_spec.rb
196
180
  - spec/async_sender_spec.rb
197
- - spec/stat_spec.rb
198
- - spec/loggable_spec.rb
199
181
  - spec/backtrace_spec.rb
200
- - spec/notice_notifier_spec.rb
201
- - spec/time_truncate_spec.rb
202
- - spec/promise_spec.rb
203
- - spec/thread_pool_spec.rb
204
- - spec/config/validator_spec.rb
182
+ - spec/benchmark_spec.rb
183
+ - spec/code_hunk_spec.rb
205
184
  - spec/config/processor_spec.rb
206
- - spec/sync_sender_spec.rb
207
- - spec/ignorable_spec.rb
185
+ - spec/config/validator_spec.rb
186
+ - spec/config_spec.rb
187
+ - spec/context_spec.rb
208
188
  - spec/deploy_notifier_spec.rb
209
- - spec/performance_notifier_spec.rb
210
- - spec/airbrake_spec.rb
211
- - spec/nested_exception_spec.rb
212
- - spec/timed_trace_spec.rb
213
189
  - spec/file_cache_spec.rb
214
- - spec/request_spec.rb
215
- - spec/notice_notifier/options_spec.rb
216
190
  - spec/filter_chain_spec.rb
217
- - spec/remote_settings/settings_data_spec.rb
218
- - spec/response_spec.rb
219
- - spec/queue_spec.rb
220
- - spec/code_hunk_spec.rb
191
+ - spec/filters/context_filter_spec.rb
192
+ - spec/filters/dependency_filter_spec.rb
193
+ - spec/filters/exception_attributes_filter_spec.rb
194
+ - spec/filters/gem_root_filter_spec.rb
195
+ - spec/filters/git_last_checkout_filter_spec.rb
196
+ - spec/filters/git_repository_filter.rb
197
+ - spec/filters/git_revision_filter_spec.rb
198
+ - spec/filters/keys_allowlist_spec.rb
199
+ - spec/filters/keys_blocklist_spec.rb
200
+ - spec/filters/root_directory_filter_spec.rb
201
+ - spec/filters/sql_filter_spec.rb
202
+ - spec/filters/system_exit_filter_spec.rb
203
+ - spec/filters/thread_filter_spec.rb
221
204
  - spec/fixtures/notroot.txt
222
- - spec/fixtures/project_root/long_line.txt
223
- - spec/fixtures/project_root/empty_file.rb
224
205
  - spec/fixtures/project_root/code.rb
206
+ - spec/fixtures/project_root/empty_file.rb
207
+ - spec/fixtures/project_root/long_line.txt
225
208
  - spec/fixtures/project_root/short_file.rb
226
209
  - spec/fixtures/project_root/vendor/bundle/ignored_file.rb
227
- - spec/monotonic_time_spec.rb
210
+ - spec/helpers.rb
211
+ - spec/ignorable_spec.rb
228
212
  - spec/inspectable_spec.rb
229
- - spec/stashable_spec.rb
213
+ - spec/loggable_spec.rb
214
+ - spec/monotonic_time_spec.rb
215
+ - spec/nested_exception_spec.rb
216
+ - spec/notice_notifier/options_spec.rb
217
+ - spec/notice_notifier_spec.rb
218
+ - spec/notice_spec.rb
219
+ - spec/performance_breakdown_spec.rb
220
+ - spec/performance_notifier_spec.rb
221
+ - spec/promise_spec.rb
230
222
  - spec/query_spec.rb
223
+ - spec/queue_spec.rb
224
+ - spec/remote_settings/callback_spec.rb
225
+ - spec/remote_settings/settings_data_spec.rb
231
226
  - spec/remote_settings_spec.rb
227
+ - spec/request_spec.rb
228
+ - spec/response_spec.rb
229
+ - spec/spec_helper.rb
230
+ - spec/stashable_spec.rb
231
+ - spec/stat_spec.rb
232
+ - spec/sync_sender_spec.rb
233
+ - spec/tdigest_spec.rb
234
+ - spec/thread_pool_spec.rb
235
+ - spec/time_truncate_spec.rb
236
+ - spec/timed_trace_spec.rb
237
+ - spec/truncator_spec.rb