airbrake-ruby 5.2.0-java → 6.0.2-java

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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/airbrake-ruby/async_sender.rb +3 -1
  3. data/lib/airbrake-ruby/config.rb +3 -3
  4. data/lib/airbrake-ruby/context.rb +51 -0
  5. data/lib/airbrake-ruby/filter_chain.rb +2 -0
  6. data/lib/airbrake-ruby/filters/context_filter.rb +4 -5
  7. data/lib/airbrake-ruby/filters/exception_attributes_filter.rb +1 -1
  8. data/lib/airbrake-ruby/filters/git_last_checkout_filter.rb +2 -2
  9. data/lib/airbrake-ruby/filters/git_repository_filter.rb +1 -1
  10. data/lib/airbrake-ruby/filters/git_revision_filter.rb +1 -1
  11. data/lib/airbrake-ruby/filters/keys_filter.rb +2 -2
  12. data/lib/airbrake-ruby/filters/sql_filter.rb +8 -8
  13. data/lib/airbrake-ruby/filters/thread_filter.rb +1 -1
  14. data/lib/airbrake-ruby/ignorable.rb +0 -2
  15. data/lib/airbrake-ruby/monotonic_time.rb +1 -1
  16. data/lib/airbrake-ruby/notice_notifier.rb +3 -4
  17. data/lib/airbrake-ruby/performance_notifier.rb +39 -40
  18. data/lib/airbrake-ruby/remote_settings/settings_data.rb +1 -1
  19. data/lib/airbrake-ruby/remote_settings.rb +26 -3
  20. data/lib/airbrake-ruby/stat.rb +1 -1
  21. data/lib/airbrake-ruby/tdigest.rb +10 -9
  22. data/lib/airbrake-ruby/thread_pool.rb +8 -6
  23. data/lib/airbrake-ruby/time_truncate.rb +2 -2
  24. data/lib/airbrake-ruby/timed_trace.rb +1 -3
  25. data/lib/airbrake-ruby/version.rb +1 -1
  26. data/lib/airbrake-ruby.rb +24 -23
  27. data/spec/airbrake_spec.rb +139 -76
  28. data/spec/async_sender_spec.rb +10 -8
  29. data/spec/backtrace_spec.rb +13 -10
  30. data/spec/benchmark_spec.rb +5 -3
  31. data/spec/code_hunk_spec.rb +24 -15
  32. data/spec/config/processor_spec.rb +12 -4
  33. data/spec/config/validator_spec.rb +5 -2
  34. data/spec/config_spec.rb +28 -20
  35. data/spec/context_spec.rb +54 -0
  36. data/spec/deploy_notifier_spec.rb +6 -4
  37. data/spec/file_cache_spec.rb +1 -0
  38. data/spec/filter_chain_spec.rb +29 -24
  39. data/spec/filters/context_filter_spec.rb +14 -5
  40. data/spec/filters/dependency_filter_spec.rb +3 -1
  41. data/spec/filters/exception_attributes_filter_spec.rb +5 -3
  42. data/spec/filters/gem_root_filter_spec.rb +5 -2
  43. data/spec/filters/git_last_checkout_filter_spec.rb +10 -12
  44. data/spec/filters/git_repository_filter.rb +9 -9
  45. data/spec/filters/git_revision_filter_spec.rb +20 -20
  46. data/spec/filters/keys_allowlist_spec.rb +25 -16
  47. data/spec/filters/keys_blocklist_spec.rb +25 -18
  48. data/spec/filters/root_directory_filter_spec.rb +3 -3
  49. data/spec/filters/sql_filter_spec.rb +26 -26
  50. data/spec/filters/system_exit_filter_spec.rb +4 -2
  51. data/spec/filters/thread_filter_spec.rb +15 -13
  52. data/spec/loggable_spec.rb +2 -2
  53. data/spec/monotonic_time_spec.rb +8 -6
  54. data/spec/nested_exception_spec.rb +46 -46
  55. data/spec/notice_notifier/options_spec.rb +23 -13
  56. data/spec/notice_notifier_spec.rb +52 -47
  57. data/spec/notice_spec.rb +6 -2
  58. data/spec/performance_notifier_spec.rb +69 -62
  59. data/spec/promise_spec.rb +38 -32
  60. data/spec/remote_settings/callback_spec.rb +27 -8
  61. data/spec/remote_settings/settings_data_spec.rb +4 -4
  62. data/spec/remote_settings_spec.rb +23 -9
  63. data/spec/response_spec.rb +34 -12
  64. data/spec/stashable_spec.rb +5 -5
  65. data/spec/stat_spec.rb +7 -5
  66. data/spec/sync_sender_spec.rb +49 -16
  67. data/spec/tdigest_spec.rb +60 -55
  68. data/spec/thread_pool_spec.rb +65 -56
  69. data/spec/time_truncate_spec.rb +23 -6
  70. data/spec/timed_trace_spec.rb +32 -30
  71. data/spec/truncator_spec.rb +72 -43
  72. metadata +54 -50
@@ -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.2.0
4
+ version: 6.0.2
5
5
  platform: java
6
6
  authors:
7
7
  - Airbrake Technologies, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-04 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbtree-jruby
@@ -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
@@ -100,6 +101,7 @@ files:
100
101
  - spec/config/processor_spec.rb
101
102
  - spec/config/validator_spec.rb
102
103
  - spec/config_spec.rb
104
+ - spec/context_spec.rb
103
105
  - spec/deploy_notifier_spec.rb
104
106
  - spec/file_cache_spec.rb
105
107
  - spec/filter_chain_spec.rb
@@ -153,7 +155,8 @@ files:
153
155
  homepage: https://airbrake.io
154
156
  licenses:
155
157
  - MIT
156
- metadata: {}
158
+ metadata:
159
+ rubygems_mfa_required: 'true'
157
160
  post_install_message:
158
161
  rdoc_options: []
159
162
  require_paths:
@@ -162,73 +165,74 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
165
  requirements:
163
166
  - - ">="
164
167
  - !ruby/object:Gem::Version
165
- version: '2.3'
168
+ version: '2.5'
166
169
  required_rubygems_version: !ruby/object:Gem::Requirement
167
170
  requirements:
168
171
  - - ">="
169
172
  - !ruby/object:Gem::Version
170
173
  version: '0'
171
174
  requirements: []
172
- rubygems_version: 3.1.2
175
+ rubygems_version: 3.2.15
173
176
  signing_key:
174
177
  specification_version: 4
175
178
  summary: Ruby notifier for https://airbrake.io
176
179
  test_files:
177
- - spec/truncator_spec.rb
178
- - spec/benchmark_spec.rb
179
- - spec/helpers.rb
180
- - spec/filters/exception_attributes_filter_spec.rb
181
- - spec/filters/root_directory_filter_spec.rb
182
- - spec/filters/sql_filter_spec.rb
183
- - spec/filters/system_exit_filter_spec.rb
184
- - spec/filters/thread_filter_spec.rb
185
- - spec/filters/keys_allowlist_spec.rb
186
- - spec/filters/dependency_filter_spec.rb
187
- - spec/filters/context_filter_spec.rb
188
- - spec/filters/git_last_checkout_filter_spec.rb
189
- - spec/filters/git_revision_filter_spec.rb
190
- - spec/filters/keys_blocklist_spec.rb
191
- - spec/filters/gem_root_filter_spec.rb
192
- - spec/filters/git_repository_filter.rb
193
- - spec/spec_helper.rb
194
- - spec/notice_spec.rb
195
- - spec/config_spec.rb
196
- - spec/performance_breakdown_spec.rb
197
- - spec/tdigest_spec.rb
180
+ - spec/airbrake_spec.rb
198
181
  - spec/async_sender_spec.rb
199
- - spec/stat_spec.rb
200
- - spec/loggable_spec.rb
201
182
  - spec/backtrace_spec.rb
202
- - spec/notice_notifier_spec.rb
203
- - spec/time_truncate_spec.rb
204
- - spec/promise_spec.rb
205
- - spec/thread_pool_spec.rb
206
- - spec/config/validator_spec.rb
183
+ - spec/benchmark_spec.rb
184
+ - spec/code_hunk_spec.rb
207
185
  - spec/config/processor_spec.rb
208
- - spec/sync_sender_spec.rb
209
- - spec/ignorable_spec.rb
186
+ - spec/config/validator_spec.rb
187
+ - spec/config_spec.rb
188
+ - spec/context_spec.rb
210
189
  - spec/deploy_notifier_spec.rb
211
- - spec/performance_notifier_spec.rb
212
- - spec/airbrake_spec.rb
213
- - spec/nested_exception_spec.rb
214
- - spec/timed_trace_spec.rb
215
190
  - spec/file_cache_spec.rb
216
- - spec/request_spec.rb
217
- - spec/notice_notifier/options_spec.rb
218
191
  - spec/filter_chain_spec.rb
219
- - spec/remote_settings/settings_data_spec.rb
220
- - spec/remote_settings/callback_spec.rb
221
- - spec/response_spec.rb
222
- - spec/queue_spec.rb
223
- - spec/code_hunk_spec.rb
192
+ - spec/filters/context_filter_spec.rb
193
+ - spec/filters/dependency_filter_spec.rb
194
+ - spec/filters/exception_attributes_filter_spec.rb
195
+ - spec/filters/gem_root_filter_spec.rb
196
+ - spec/filters/git_last_checkout_filter_spec.rb
197
+ - spec/filters/git_repository_filter.rb
198
+ - spec/filters/git_revision_filter_spec.rb
199
+ - spec/filters/keys_allowlist_spec.rb
200
+ - spec/filters/keys_blocklist_spec.rb
201
+ - spec/filters/root_directory_filter_spec.rb
202
+ - spec/filters/sql_filter_spec.rb
203
+ - spec/filters/system_exit_filter_spec.rb
204
+ - spec/filters/thread_filter_spec.rb
224
205
  - spec/fixtures/notroot.txt
225
- - spec/fixtures/project_root/long_line.txt
226
- - spec/fixtures/project_root/empty_file.rb
227
206
  - spec/fixtures/project_root/code.rb
207
+ - spec/fixtures/project_root/empty_file.rb
208
+ - spec/fixtures/project_root/long_line.txt
228
209
  - spec/fixtures/project_root/short_file.rb
229
210
  - spec/fixtures/project_root/vendor/bundle/ignored_file.rb
230
- - spec/monotonic_time_spec.rb
211
+ - spec/helpers.rb
212
+ - spec/ignorable_spec.rb
231
213
  - spec/inspectable_spec.rb
232
- - spec/stashable_spec.rb
214
+ - spec/loggable_spec.rb
215
+ - spec/monotonic_time_spec.rb
216
+ - spec/nested_exception_spec.rb
217
+ - spec/notice_notifier/options_spec.rb
218
+ - spec/notice_notifier_spec.rb
219
+ - spec/notice_spec.rb
220
+ - spec/performance_breakdown_spec.rb
221
+ - spec/performance_notifier_spec.rb
222
+ - spec/promise_spec.rb
233
223
  - spec/query_spec.rb
224
+ - spec/queue_spec.rb
225
+ - spec/remote_settings/callback_spec.rb
226
+ - spec/remote_settings/settings_data_spec.rb
234
227
  - spec/remote_settings_spec.rb
228
+ - spec/request_spec.rb
229
+ - spec/response_spec.rb
230
+ - spec/spec_helper.rb
231
+ - spec/stashable_spec.rb
232
+ - spec/stat_spec.rb
233
+ - spec/sync_sender_spec.rb
234
+ - spec/tdigest_spec.rb
235
+ - spec/thread_pool_spec.rb
236
+ - spec/time_truncate_spec.rb
237
+ - spec/timed_trace_spec.rb
238
+ - spec/truncator_spec.rb