airbrake-ruby 6.0.1-java → 6.1.1-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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/airbrake-ruby/config/processor.rb +6 -0
  3. data/lib/airbrake-ruby/config.rb +3 -3
  4. data/lib/airbrake-ruby/filters/git_last_checkout_filter.rb +1 -1
  5. data/lib/airbrake-ruby/filters/git_repository_filter.rb +7 -1
  6. data/lib/airbrake-ruby/filters/sql_filter.rb +6 -6
  7. data/lib/airbrake-ruby/nested_exception.rb +10 -1
  8. data/lib/airbrake-ruby/notice.rb +5 -3
  9. data/lib/airbrake-ruby/performance_notifier.rb +38 -38
  10. data/lib/airbrake-ruby/stat.rb +1 -1
  11. data/lib/airbrake-ruby/time_truncate.rb +2 -2
  12. data/lib/airbrake-ruby/version.rb +1 -1
  13. data/lib/airbrake-ruby.rb +21 -21
  14. metadata +6 -123
  15. data/spec/airbrake_spec.rb +0 -522
  16. data/spec/async_sender_spec.rb +0 -65
  17. data/spec/backtrace_spec.rb +0 -430
  18. data/spec/benchmark_spec.rb +0 -35
  19. data/spec/code_hunk_spec.rb +0 -124
  20. data/spec/config/processor_spec.rb +0 -151
  21. data/spec/config/validator_spec.rb +0 -204
  22. data/spec/config_spec.rb +0 -188
  23. data/spec/context_spec.rb +0 -54
  24. data/spec/deploy_notifier_spec.rb +0 -50
  25. data/spec/file_cache_spec.rb +0 -35
  26. data/spec/filter_chain_spec.rb +0 -124
  27. data/spec/filters/context_filter_spec.rb +0 -32
  28. data/spec/filters/dependency_filter_spec.rb +0 -14
  29. data/spec/filters/exception_attributes_filter_spec.rb +0 -52
  30. data/spec/filters/gem_root_filter_spec.rb +0 -44
  31. data/spec/filters/git_last_checkout_filter_spec.rb +0 -61
  32. data/spec/filters/git_repository_filter.rb +0 -61
  33. data/spec/filters/git_revision_filter_spec.rb +0 -126
  34. data/spec/filters/keys_allowlist_spec.rb +0 -204
  35. data/spec/filters/keys_blocklist_spec.rb +0 -242
  36. data/spec/filters/root_directory_filter_spec.rb +0 -39
  37. data/spec/filters/sql_filter_spec.rb +0 -274
  38. data/spec/filters/system_exit_filter_spec.rb +0 -16
  39. data/spec/filters/thread_filter_spec.rb +0 -281
  40. data/spec/fixtures/notroot.txt +0 -7
  41. data/spec/fixtures/project_root/code.rb +0 -221
  42. data/spec/fixtures/project_root/empty_file.rb +0 -0
  43. data/spec/fixtures/project_root/long_line.txt +0 -1
  44. data/spec/fixtures/project_root/short_file.rb +0 -3
  45. data/spec/fixtures/project_root/vendor/bundle/ignored_file.rb +0 -5
  46. data/spec/helpers.rb +0 -9
  47. data/spec/ignorable_spec.rb +0 -14
  48. data/spec/inspectable_spec.rb +0 -45
  49. data/spec/loggable_spec.rb +0 -17
  50. data/spec/monotonic_time_spec.rb +0 -25
  51. data/spec/nested_exception_spec.rb +0 -73
  52. data/spec/notice_notifier/options_spec.rb +0 -269
  53. data/spec/notice_notifier_spec.rb +0 -361
  54. data/spec/notice_spec.rb +0 -300
  55. data/spec/performance_breakdown_spec.rb +0 -11
  56. data/spec/performance_notifier_spec.rb +0 -645
  57. data/spec/promise_spec.rb +0 -203
  58. data/spec/query_spec.rb +0 -11
  59. data/spec/queue_spec.rb +0 -18
  60. data/spec/remote_settings/callback_spec.rb +0 -162
  61. data/spec/remote_settings/settings_data_spec.rb +0 -348
  62. data/spec/remote_settings_spec.rb +0 -201
  63. data/spec/request_spec.rb +0 -9
  64. data/spec/response_spec.rb +0 -110
  65. data/spec/spec_helper.rb +0 -100
  66. data/spec/stashable_spec.rb +0 -23
  67. data/spec/stat_spec.rb +0 -39
  68. data/spec/sync_sender_spec.rb +0 -168
  69. data/spec/tdigest_spec.rb +0 -235
  70. data/spec/thread_pool_spec.rb +0 -196
  71. data/spec/time_truncate_spec.rb +0 -15
  72. data/spec/timed_trace_spec.rb +0 -127
  73. data/spec/truncator_spec.rb +0 -267
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9bfa519dc331372374e2feab05e1429f19c17d3159fd30aef317acbed91e087
4
- data.tar.gz: a2b4daefe2139f002a42754b6df05c6c11dca9d80b0ecf440cd0620336a2d87e
3
+ metadata.gz: 5e9b6912593d385ef6bf89acc4744a9b6f9fb605959299f8ae6b27b312758f47
4
+ data.tar.gz: 1b835db3c660cdbfee82a3ef3a67a7237c83a66c3d153377a1fbc50ed4870840
5
5
  SHA512:
6
- metadata.gz: 1da651d71a63854fa720ca1253052a6615a0c53224f7ae6bd80ba781037a790f7d92c2997cd5d820a32ad677b5512866e394cc06b96ff986a275cedb3012c41b
7
- data.tar.gz: e09266840dd038be725ad564d6db02696e5c6a0f188eae5206da30cbd2cf454eccbe56cbcf027b454821e6ef1bee29cb8fb2db7c7c61f81ffa6e0ecb1566c133
6
+ metadata.gz: 5cc2026d845c74164b1809c271e41cf295bb711f65a64926a5fa38950b0008a262adfe78f8499264f295d59a37722c69aeeee28be5c8b0de9669f90e0570f207
7
+ data.tar.gz: 6081c2a922b9334e31220a0f7d87309dd054a6d2ef5837f254d719a85dd4914a004f5fc6fe2f8adbffdd649f24320cb04973d0439e1a5b41665ee6217fa7e237
@@ -43,8 +43,14 @@ module Airbrake
43
43
  def process_remote_configuration
44
44
  return unless @config.remote_config
45
45
  return unless @project_id
46
+
47
+ # Never poll remote configuration in the test environment.
46
48
  return if @config.environment == 'test'
47
49
 
50
+ # If the current environment is ignored, don't try to poll remote
51
+ # configuration.
52
+ return if @config.ignore_environments.include?(@config.environment)
53
+
48
54
  RemoteSettings.poll(@project_id, @config.remote_config_host) do |data|
49
55
  @poll_callback.call(data)
50
56
  end
@@ -248,14 +248,14 @@ module Airbrake
248
248
 
249
249
  # @return [Promise] resolved promise if neither of the performance options
250
250
  # reject it, false otherwise
251
- def check_performance_options(resource)
251
+ def check_performance_options(metric)
252
252
  promise = Airbrake::Promise.new
253
253
 
254
254
  if !performance_stats
255
255
  promise.reject("The Performance Stats feature is disabled")
256
- elsif resource.is_a?(Airbrake::Query) && !query_stats
256
+ elsif metric.is_a?(Airbrake::Query) && !query_stats
257
257
  promise.reject("The Query Stats feature is disabled")
258
- elsif resource.is_a?(Airbrake::Queue) && !job_stats
258
+ elsif metric.is_a?(Airbrake::Queue) && !job_stats
259
259
  promise.reject("The Job Stats feature is disabled")
260
260
  else
261
261
  promise
@@ -27,7 +27,7 @@ module Airbrake
27
27
  @git_path = File.join(root_directory, '.git')
28
28
  @weight = 116
29
29
  @last_checkout = nil
30
- @deploy_username = ENV['AIRBRAKE_DEPLOY_USERNAME']
30
+ @deploy_username = ENV.fetch('AIRBRAKE_DEPLOY_USERNAME', nil)
31
31
  end
32
32
 
33
33
  # @macro call_filter
@@ -49,7 +49,13 @@ module Airbrake
49
49
  def detect_git_version
50
50
  return unless which('git')
51
51
 
52
- Gem::Version.new(`git --version`.split[2])
52
+ begin
53
+ Gem::Version.new(`git --version`.split[2])
54
+ rescue Errno::EAGAIN
55
+ # Bugfix for the case when the system cannot allocate memory for
56
+ # a fork() call: https://github.com/airbrake/airbrake-ruby/issues/680
57
+ nil
58
+ end
53
59
  end
54
60
 
55
61
  # Cross-platform way to tell if an executable is accessible.
@@ -108,20 +108,20 @@ module Airbrake
108
108
  @regexp = Regexp.union(features)
109
109
  end
110
110
 
111
- # @param [Airbrake::Query] resource
112
- def call(resource)
113
- return unless resource.respond_to?(:query)
111
+ # @param [Airbrake::Query] metric
112
+ def call(metric)
113
+ return unless metric.respond_to?(:query)
114
114
 
115
- query = resource.query
115
+ query = metric.query
116
116
  if IGNORED_QUERIES.any? { |q| q =~ query }
117
- resource.ignore!
117
+ metric.ignore!
118
118
  return
119
119
  end
120
120
 
121
121
  q = query.gsub(@regexp, FILTERED)
122
122
  q.gsub!(POST_FILTER, FILTERED) if q =~ POST_FILTER
123
123
  q = ERROR_MSG if UNMATCHED_PAIR[@dialect] =~ q
124
- resource.query = q
124
+ metric.query = q
125
125
  end
126
126
  end
127
127
  end
@@ -9,6 +9,15 @@ module Airbrake
9
9
  # can unwrap. Exceptions that have a longer cause chain will be ignored
10
10
  MAX_NESTED_EXCEPTIONS = 3
11
11
 
12
+ # On Ruby 3.1+, the error highlighting gem can produce messages that can
13
+ # span multiple lines. We don't display multiline error messages in the
14
+ # title of the notice in the Airbrake dashboard. Therefore, we want to strip
15
+ # out the higlighting part so that the errors look consistent. The full
16
+ # message with the exception will be attached to the notice body.
17
+ #
18
+ # @return [String]
19
+ RUBY_31_ERROR_HIGHLIGHTING_DIVIDER = "\n\n".freeze
20
+
12
21
  def initialize(exception)
13
22
  @exception = exception
14
23
  end
@@ -16,7 +25,7 @@ module Airbrake
16
25
  def as_json
17
26
  unwind_exceptions.map do |exception|
18
27
  { type: exception.class.name,
19
- message: exception.message,
28
+ message: exception.message.split(RUBY_31_ERROR_HIGHLIGHTING_DIVIDER).first,
20
29
  backtrace: Backtrace.parse(exception) }
21
30
  end
22
31
  end
@@ -49,16 +49,17 @@ module Airbrake
49
49
  # @api private
50
50
  def initialize(exception, params = {})
51
51
  @config = Airbrake::Config.instance
52
+ @truncator = Airbrake::Truncator.new(PAYLOAD_MAX_SIZE)
53
+
52
54
  @payload = {
53
55
  errors: NestedException.new(exception).as_json,
54
- context: context,
56
+ context: context(exception),
55
57
  environment: {
56
58
  program_name: $PROGRAM_NAME,
57
59
  },
58
60
  session: {},
59
61
  params: params,
60
62
  }
61
- @truncator = Airbrake::Truncator.new(PAYLOAD_MAX_SIZE)
62
63
 
63
64
  stash[:exception] = exception
64
65
  end
@@ -118,7 +119,7 @@ module Airbrake
118
119
 
119
120
  private
120
121
 
121
- def context
122
+ def context(exception)
122
123
  {
123
124
  version: @config.app_version,
124
125
  versions: @config.versions,
@@ -132,6 +133,7 @@ module Airbrake
132
133
  hostname: HOSTNAME,
133
134
 
134
135
  severity: DEFAULT_SEVERITY,
136
+ error_message: @truncator.truncate(exception.message),
135
137
  }.merge(CONTEXT).delete_if { |_key, val| val.nil? || val.empty? }
136
138
  end
137
139
 
@@ -1,6 +1,6 @@
1
1
  module Airbrake
2
- # QueryNotifier aggregates information about SQL queries and periodically sends
3
- # collected data to Airbrake.
2
+ # PerformanceNotifier aggregates performance data and periodically sends it to
3
+ # Airbrake.
4
4
  #
5
5
  # @api public
6
6
  # @since v3.2.0
@@ -21,20 +21,20 @@ module Airbrake
21
21
  @has_payload = @payload.new_cond
22
22
  end
23
23
 
24
- # @param [Hash] resource
24
+ # @param [Hash] metric
25
25
  # @see Airbrake.notify_query
26
26
  # @see Airbrake.notify_request
27
- def notify(resource)
27
+ def notify(metric)
28
28
  @payload.synchronize do
29
- send_resource(resource, sync: false)
29
+ send_metric(metric, sync: false)
30
30
  end
31
31
  end
32
32
 
33
- # @param [Hash] resource
33
+ # @param [Hash] metric
34
34
  # @since v4.10.0
35
35
  # @see Airbrake.notify_queue_sync
36
- def notify_sync(resource)
37
- send_resource(resource, sync: true).value
36
+ def notify_sync(metric)
37
+ send_metric(metric, sync: true).value
38
38
  end
39
39
 
40
40
  # @see Airbrake.add_performance_filter
@@ -78,16 +78,16 @@ module Airbrake
78
78
  end
79
79
  end
80
80
 
81
- def send_resource(resource, sync:)
82
- promise = check_configuration(resource)
81
+ def send_metric(metric, sync:)
82
+ promise = check_configuration(metric)
83
83
  return promise if promise.rejected?
84
84
 
85
- @filter_chain.refine(resource)
86
- if resource.ignored?
87
- return Promise.new.reject("#{resource.class} was ignored by a filter")
85
+ @filter_chain.refine(metric)
86
+ if metric.ignored?
87
+ return Promise.new.reject("#{metric.class} was ignored by a filter")
88
88
  end
89
89
 
90
- update_payload(resource)
90
+ update_payload(metric)
91
91
  if sync || @flush_period == 0
92
92
  send(@sync_sender, @payload, promise)
93
93
  else
@@ -96,29 +96,29 @@ module Airbrake
96
96
  end
97
97
  end
98
98
 
99
- def update_payload(resource)
100
- if (total_stat = @payload[resource])
101
- @payload.key(total_stat).merge(resource)
99
+ def update_payload(metric)
100
+ if (total_stat = @payload[metric])
101
+ @payload.key(total_stat).merge(metric)
102
102
  else
103
- @payload[resource] = { total: Airbrake::Stat.new }
103
+ @payload[metric] = { total: Airbrake::Stat.new }
104
104
  end
105
105
 
106
- @payload[resource][:total].increment_ms(resource.timing)
106
+ @payload[metric][:total].increment_ms(metric.timing)
107
107
 
108
- resource.groups.each do |name, ms|
109
- @payload[resource][name] ||= Airbrake::Stat.new
110
- @payload[resource][name].increment_ms(ms)
108
+ metric.groups.each do |name, ms|
109
+ @payload[metric][name] ||= Airbrake::Stat.new
110
+ @payload[metric][name].increment_ms(ms)
111
111
  end
112
112
  end
113
113
 
114
- def check_configuration(resource)
114
+ def check_configuration(metric)
115
115
  promise = @config.check_configuration
116
116
  return promise if promise.rejected?
117
117
 
118
- promise = @config.check_performance_options(resource)
118
+ promise = @config.check_performance_options(metric)
119
119
  return promise if promise.rejected?
120
120
 
121
- if resource.timing && resource.timing == 0
121
+ if metric.timing && metric.timing == 0
122
122
  return Promise.new.reject(':timing cannot be zero')
123
123
  end
124
124
 
@@ -128,47 +128,47 @@ module Airbrake
128
128
  def send(sender, payload, promise)
129
129
  raise "payload cannot be empty. Race?" if payload.none?
130
130
 
131
- with_grouped_payload(payload) do |resource_hash, destination|
131
+ with_grouped_payload(payload) do |metric_hash, destination|
132
132
  url = URI.join(
133
133
  @config.apm_host,
134
134
  "api/v5/projects/#{@config.project_id}/#{destination}",
135
135
  )
136
136
 
137
137
  logger.debug do
138
- "#{LOG_LABEL} #{self.class.name}##{__method__}: #{resource_hash}"
138
+ "#{LOG_LABEL} #{self.class.name}##{__method__}: #{metric_hash}"
139
139
  end
140
- sender.send(resource_hash, promise, url)
140
+ sender.send(metric_hash, promise, url)
141
141
  end
142
142
 
143
143
  promise
144
144
  end
145
145
 
146
146
  def with_grouped_payload(raw_payload)
147
- grouped_payload = raw_payload.group_by do |resource, _stats|
148
- [resource.cargo, resource.destination]
147
+ grouped_payload = raw_payload.group_by do |metric, _stats|
148
+ [metric.cargo, metric.destination]
149
149
  end
150
150
 
151
- grouped_payload.each do |(cargo, destination), resources|
151
+ grouped_payload.each do |(cargo, destination), metrics|
152
152
  payload = {}
153
- payload[cargo] = serialize_resources(resources)
153
+ payload[cargo] = serialize_metrics(metrics)
154
154
  payload['environment'] = @config.environment if @config.environment
155
155
 
156
156
  yield(payload, destination)
157
157
  end
158
158
  end
159
159
 
160
- def serialize_resources(resources)
161
- resources.map do |resource, stats|
162
- resource_hash = resource.to_h.merge!(stats[:total].to_h)
160
+ def serialize_metrics(metrics)
161
+ metrics.map do |metric, stats|
162
+ metric_hash = metric.to_h.merge!(stats[:total].to_h)
163
163
 
164
- if resource.groups.any?
164
+ if metric.groups.any?
165
165
  group_stats = stats.reject { |name, _stat| name == :total }
166
- resource_hash['groups'] = group_stats.merge(group_stats) do |_name, stat|
166
+ metric_hash['groups'] = group_stats.merge(group_stats) do |_name, stat|
167
167
  stat.to_h
168
168
  end
169
169
  end
170
170
 
171
- resource_hash
171
+ metric_hash
172
172
  end
173
173
  end
174
174
  end
@@ -4,7 +4,7 @@ module Airbrake
4
4
  # Stat is a data structure that allows accumulating performance data (route
5
5
  # performance, SQL query performance and such). It's powered by TDigests.
6
6
  #
7
- # Usually, one Stat corresponds to one resource (route or query,
7
+ # Usually, one Stat corresponds to one metric (route or query,
8
8
  # etc.). Incrementing a stat means pushing new performance statistics.
9
9
  #
10
10
  # @example
@@ -6,10 +6,10 @@ module Airbrake
6
6
  module TimeTruncate
7
7
  # Truncate +time+ to floor minute and turn it into an RFC3339 timestamp.
8
8
  #
9
- # @param [Time] time
9
+ # @param [Time, Integer, Float] time
10
10
  # @return [String]
11
11
  def self.utc_truncate_minutes(time)
12
- tm = time.getutc
12
+ tm = Time.at(time).getutc
13
13
 
14
14
  Time.utc(tm.year, tm.month, tm.day, tm.hour, tm.min).to_datetime.rfc3339
15
15
  end
@@ -3,7 +3,7 @@
3
3
  module Airbrake
4
4
  # @return [String] the library version
5
5
  # @api public
6
- AIRBRAKE_RUBY_VERSION = '6.0.1'.freeze
6
+ AIRBRAKE_RUBY_VERSION = '6.1.1'.freeze
7
7
 
8
8
  # @return [Hash{Symbol=>String}] the information about the notifier library
9
9
  # @since v5.0.0
data/lib/airbrake-ruby.rb CHANGED
@@ -364,23 +364,14 @@ module Airbrake
364
364
  # method: 'POST',
365
365
  # route: '/thing/:id/create',
366
366
  # status_code: 200,
367
- # func: 'do_stuff',
368
- # file: 'app/models/foo.rb',
369
- # line: 452,
370
367
  # timing: 123.45 # ms
371
368
  # )
372
369
  #
373
370
  # @param [Hash{Symbol=>Object}] request_info
374
371
  # @option request_info [String] :method The HTTP method that was invoked
375
372
  # @option request_info [String] :route The route that was invoked
376
- # @option request_info [Integer] :status_code The respose code that the
373
+ # @option request_info [Integer] :status_code The response code that the
377
374
  # route returned
378
- # @option request_info [String] :func The function that called the query
379
- # (optional)
380
- # @option request_info [String] :file The file that has the function that
381
- # called the query (optional)
382
- # @option request_info [Integer] :line The line that executes the query
383
- # (optional)
384
375
  # @option request_info [Float] :timing How much time it took to process the
385
376
  # request (in ms)
386
377
  # @param [Hash] stash What needs to be appeneded to the stash, so it's
@@ -415,6 +406,9 @@ module Airbrake
415
406
  # method: 'GET',
416
407
  # route: '/things',
417
408
  # query: 'SELECT * FROM things',
409
+ # func: 'do_stuff',
410
+ # file: 'app/models/foo.rb',
411
+ # line: 452,
418
412
  # timing: 123.45 # ms
419
413
  # )
420
414
  #
@@ -424,6 +418,12 @@ module Airbrake
424
418
  # @option query_info [String] :route The route that triggered this SQL
425
419
  # query (optional)
426
420
  # @option query_info [String] :query The query that was executed
421
+ # @option request_info [String] :func The function that called the query
422
+ # (optional)
423
+ # @option request_info [String] :file The file that has the function that
424
+ # called the query (optional)
425
+ # @option request_info [Integer] :line The line that executes the query
426
+ # (optional)
427
427
  # @option query_info [Float] :timing How much time it took to process the
428
428
  # query (in ms)
429
429
  # @param [Hash] stash What needs to be appeneded to the stash, so it's
@@ -451,7 +451,7 @@ module Airbrake
451
451
  # Increments performance breakdown statistics of a certain route.
452
452
  #
453
453
  # @example
454
- # Airbrake.notify_request(
454
+ # Airbrake.notify_performance_breakdown(
455
455
  # method: 'POST',
456
456
  # route: '/thing/:id/create',
457
457
  # response_type: 'json',
@@ -523,24 +523,24 @@ module Airbrake
523
523
  performance_notifier.notify_sync(queue)
524
524
  end
525
525
 
526
- # Runs a callback before {.notify_request} or {.notify_query} kicks in. This
527
- # is useful if you want to ignore specific resources or filter the data the
528
- # resource contains.
526
+ # Runs a callback before {.notify_request}, {.notify_query}, {.notify_queue}
527
+ # or {.notify_performance_breakdown} kicks in. This is useful if you want to
528
+ # ignore specific metrics or filter the data the metric contains.
529
529
  #
530
- # @example Ignore all resources
530
+ # @example Ignore all metrics
531
531
  # Airbrake.add_performance_filter(&:ignore!)
532
532
  # @example Filter sensitive data
533
- # Airbrake.add_performance_filter do |resource|
534
- # case resource
533
+ # Airbrake.add_performance_filter do |metric|
534
+ # case metric
535
535
  # when Airbrake::Query
536
- # resource.route = '[Filtered]'
536
+ # metric.route = '[Filtered]'
537
537
  # when Airbrake::Request
538
- # resource.query = '[Filtered]'
538
+ # metric.query = '[Filtered]'
539
539
  # end
540
540
  # end
541
541
  # @example Filter with help of a class
542
542
  # class MyFilter
543
- # def call(resource)
543
+ # def call(metric)
544
544
  # # ...
545
545
  # end
546
546
  # end
@@ -548,7 +548,7 @@ module Airbrake
548
548
  # Airbrake.add_performance_filter(MyFilter.new)
549
549
  #
550
550
  # @param [#call] filter The filter object
551
- # @yield [resource] The resource to filter
551
+ # @yield [metric] The metric to filter
552
552
  # @yieldparam [Airbrake::Query, Airbrake::Request]
553
553
  # @yieldreturn [void]
554
554
  # @return [void]
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: 6.0.1
4
+ version: 6.1.1
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: 2021-10-07 00:00:00.000000000 Z
11
+ date: 2022-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbtree-jruby
@@ -93,69 +93,11 @@ files:
93
93
  - lib/airbrake-ruby/timed_trace.rb
94
94
  - lib/airbrake-ruby/truncator.rb
95
95
  - lib/airbrake-ruby/version.rb
96
- - spec/airbrake_spec.rb
97
- - spec/async_sender_spec.rb
98
- - spec/backtrace_spec.rb
99
- - spec/benchmark_spec.rb
100
- - spec/code_hunk_spec.rb
101
- - spec/config/processor_spec.rb
102
- - spec/config/validator_spec.rb
103
- - spec/config_spec.rb
104
- - spec/context_spec.rb
105
- - spec/deploy_notifier_spec.rb
106
- - spec/file_cache_spec.rb
107
- - spec/filter_chain_spec.rb
108
- - spec/filters/context_filter_spec.rb
109
- - spec/filters/dependency_filter_spec.rb
110
- - spec/filters/exception_attributes_filter_spec.rb
111
- - spec/filters/gem_root_filter_spec.rb
112
- - spec/filters/git_last_checkout_filter_spec.rb
113
- - spec/filters/git_repository_filter.rb
114
- - spec/filters/git_revision_filter_spec.rb
115
- - spec/filters/keys_allowlist_spec.rb
116
- - spec/filters/keys_blocklist_spec.rb
117
- - spec/filters/root_directory_filter_spec.rb
118
- - spec/filters/sql_filter_spec.rb
119
- - spec/filters/system_exit_filter_spec.rb
120
- - spec/filters/thread_filter_spec.rb
121
- - spec/fixtures/notroot.txt
122
- - spec/fixtures/project_root/code.rb
123
- - spec/fixtures/project_root/empty_file.rb
124
- - spec/fixtures/project_root/long_line.txt
125
- - spec/fixtures/project_root/short_file.rb
126
- - spec/fixtures/project_root/vendor/bundle/ignored_file.rb
127
- - spec/helpers.rb
128
- - spec/ignorable_spec.rb
129
- - spec/inspectable_spec.rb
130
- - spec/loggable_spec.rb
131
- - spec/monotonic_time_spec.rb
132
- - spec/nested_exception_spec.rb
133
- - spec/notice_notifier/options_spec.rb
134
- - spec/notice_notifier_spec.rb
135
- - spec/notice_spec.rb
136
- - spec/performance_breakdown_spec.rb
137
- - spec/performance_notifier_spec.rb
138
- - spec/promise_spec.rb
139
- - spec/query_spec.rb
140
- - spec/queue_spec.rb
141
- - spec/remote_settings/callback_spec.rb
142
- - spec/remote_settings/settings_data_spec.rb
143
- - spec/remote_settings_spec.rb
144
- - spec/request_spec.rb
145
- - spec/response_spec.rb
146
- - spec/spec_helper.rb
147
- - spec/stashable_spec.rb
148
- - spec/stat_spec.rb
149
- - spec/sync_sender_spec.rb
150
- - spec/tdigest_spec.rb
151
- - spec/thread_pool_spec.rb
152
- - spec/time_truncate_spec.rb
153
- - spec/timed_trace_spec.rb
154
- - spec/truncator_spec.rb
155
96
  homepage: https://airbrake.io
156
97
  licenses:
157
98
  - MIT
158
- metadata: {}
99
+ metadata:
100
+ rubygems_mfa_required: 'true'
159
101
  post_install_message:
160
102
  rdoc_options: []
161
103
  require_paths:
@@ -171,67 +113,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
113
  - !ruby/object:Gem::Version
172
114
  version: '0'
173
115
  requirements: []
174
- rubygems_version: 3.2.15
116
+ rubygems_version: 3.1.6
175
117
  signing_key:
176
118
  specification_version: 4
177
119
  summary: Ruby notifier for https://airbrake.io
178
- test_files:
179
- - spec/airbrake_spec.rb
180
- - spec/async_sender_spec.rb
181
- - spec/backtrace_spec.rb
182
- - spec/benchmark_spec.rb
183
- - spec/code_hunk_spec.rb
184
- - spec/config/processor_spec.rb
185
- - spec/config/validator_spec.rb
186
- - spec/config_spec.rb
187
- - spec/context_spec.rb
188
- - spec/deploy_notifier_spec.rb
189
- - spec/file_cache_spec.rb
190
- - spec/filter_chain_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
204
- - spec/fixtures/notroot.txt
205
- - spec/fixtures/project_root/code.rb
206
- - spec/fixtures/project_root/empty_file.rb
207
- - spec/fixtures/project_root/long_line.txt
208
- - spec/fixtures/project_root/short_file.rb
209
- - spec/fixtures/project_root/vendor/bundle/ignored_file.rb
210
- - spec/helpers.rb
211
- - spec/ignorable_spec.rb
212
- - spec/inspectable_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
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
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
120
+ test_files: []