airbrake 9.5.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.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/lib/airbrake.rb +30 -0
  3. data/lib/airbrake/capistrano.rb +6 -0
  4. data/lib/airbrake/capistrano/capistrano2.rb +38 -0
  5. data/lib/airbrake/capistrano/capistrano3.rb +21 -0
  6. data/lib/airbrake/delayed_job.rb +48 -0
  7. data/lib/airbrake/logger.rb +101 -0
  8. data/lib/airbrake/rack.rb +35 -0
  9. data/lib/airbrake/rack/context_filter.rb +58 -0
  10. data/lib/airbrake/rack/http_headers_filter.rb +42 -0
  11. data/lib/airbrake/rack/http_params_filter.rb +25 -0
  12. data/lib/airbrake/rack/instrumentable.rb +28 -0
  13. data/lib/airbrake/rack/middleware.rb +100 -0
  14. data/lib/airbrake/rack/request_body_filter.rb +31 -0
  15. data/lib/airbrake/rack/request_store.rb +32 -0
  16. data/lib/airbrake/rack/route_filter.rb +53 -0
  17. data/lib/airbrake/rack/session_filter.rb +23 -0
  18. data/lib/airbrake/rack/user.rb +70 -0
  19. data/lib/airbrake/rack/user_filter.rb +23 -0
  20. data/lib/airbrake/rails.rb +32 -0
  21. data/lib/airbrake/rails/action_cable.rb +33 -0
  22. data/lib/airbrake/rails/action_cable/notify_callback.rb +20 -0
  23. data/lib/airbrake/rails/action_controller.rb +35 -0
  24. data/lib/airbrake/rails/action_controller_notify_subscriber.rb +28 -0
  25. data/lib/airbrake/rails/action_controller_performance_breakdown_subscriber.rb +46 -0
  26. data/lib/airbrake/rails/action_controller_route_subscriber.rb +46 -0
  27. data/lib/airbrake/rails/active_job.rb +33 -0
  28. data/lib/airbrake/rails/active_record.rb +34 -0
  29. data/lib/airbrake/rails/active_record_subscriber.rb +42 -0
  30. data/lib/airbrake/rails/app.rb +43 -0
  31. data/lib/airbrake/rails/backtrace_cleaner.rb +10 -0
  32. data/lib/airbrake/rails/curb.rb +35 -0
  33. data/lib/airbrake/rails/event.rb +83 -0
  34. data/lib/airbrake/rails/excon_subscriber.rb +21 -0
  35. data/lib/airbrake/rails/http.rb +12 -0
  36. data/lib/airbrake/rails/http_client.rb +10 -0
  37. data/lib/airbrake/rails/net_http.rb +10 -0
  38. data/lib/airbrake/rails/railtie.rb +141 -0
  39. data/lib/airbrake/rails/typhoeus.rb +12 -0
  40. data/lib/airbrake/rake.rb +63 -0
  41. data/lib/airbrake/rake/tasks.rb +110 -0
  42. data/lib/airbrake/resque.rb +29 -0
  43. data/lib/airbrake/shoryuken.rb +40 -0
  44. data/lib/airbrake/sidekiq.rb +47 -0
  45. data/lib/airbrake/sidekiq/retryable_jobs_filter.rb +51 -0
  46. data/lib/airbrake/sneakers.rb +34 -0
  47. data/lib/airbrake/version.rb +5 -0
  48. data/lib/generators/airbrake_generator.rb +23 -0
  49. data/lib/generators/airbrake_initializer.rb.erb +78 -0
  50. metadata +416 -0
@@ -0,0 +1,51 @@
1
+ module Airbrake
2
+ module Sidekiq
3
+ # Filter that can ignore notices from jobs that failed but will be retried
4
+ # by Sidekiq
5
+ # @since v7.3.0
6
+ class RetryableJobsFilter
7
+ if Gem::Version.new(::Sidekiq::VERSION) < Gem::Version.new('5.0.0')
8
+ require 'sidekiq/middleware/server/retry_jobs'
9
+ DEFAULT_MAX_RETRY_ATTEMPTS = \
10
+ ::Sidekiq::Middleware::Server::RetryJobs::DEFAULT_MAX_RETRY_ATTEMPTS
11
+ else
12
+ require 'sidekiq/job_retry'
13
+ DEFAULT_MAX_RETRY_ATTEMPTS = ::Sidekiq::JobRetry::DEFAULT_MAX_RETRY_ATTEMPTS
14
+ end
15
+
16
+ def initialize(max_retries: nil)
17
+ @max_retries = max_retries
18
+ end
19
+
20
+ def call(notice)
21
+ job = notice[:params][:job]
22
+
23
+ notice.ignore! if retryable?(job)
24
+ end
25
+
26
+ private
27
+
28
+ def retryable?(job)
29
+ return false unless job && job['retry']
30
+
31
+ max_attempts = max_attempts_for(job)
32
+ retry_count = (job['retry_count'] || -1) + 1
33
+ retry_count < max_attempts
34
+ end
35
+
36
+ def max_attempts_for(job)
37
+ if @max_retries
38
+ @max_retries
39
+ elsif job['retry'].is_a?(Integer)
40
+ job['retry']
41
+ else
42
+ max_retries
43
+ end
44
+ end
45
+
46
+ def max_retries
47
+ @max_retries ||= ::Sidekiq.options[:max_retries] || DEFAULT_MAX_RETRY_ATTEMPTS
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,34 @@
1
+ module Airbrake
2
+ module Sneakers
3
+ # Provides integration with Sneakers.
4
+ #
5
+ # @see https://github.com/jondot/sneakers
6
+ # @since v7.2.0
7
+ class ErrorReporter
8
+ # @return [Array<Symbol>] ignored keys values of which raise
9
+ # SystemStackError when `as_json` is called on them
10
+ # @see https://github.com/airbrake/airbrake/issues/850
11
+ IGNORED_KEYS = %i[delivery_tag consumer channel].freeze
12
+
13
+ def call(exception, worker = nil, **context)
14
+ Airbrake.notify(exception, filter_context(context)) do |notice|
15
+ notice[:context][:component] = 'sneakers'
16
+ notice[:context][:action] = worker.class.to_s
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def filter_context(context)
23
+ return context unless context[:delivery_info]
24
+ h = context.dup
25
+ h[:delivery_info] = context[:delivery_info].reject do |k, _v|
26
+ IGNORED_KEYS.include?(k)
27
+ end
28
+ h
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ Sneakers.error_reporters << Airbrake::Sneakers::ErrorReporter.new
@@ -0,0 +1,5 @@
1
+ # We use Semantic Versioning v2.0.0
2
+ # More information: http://semver.org/
3
+ module Airbrake
4
+ AIRBRAKE_VERSION = '9.5.0'.freeze
5
+ end
@@ -0,0 +1,23 @@
1
+ # Creates the Airbrake initializer file for Rails apps.
2
+ #
3
+ # @example Invokation from terminal
4
+ # rails generate airbrake PROJECT_KEY PROJECT_ID [NAME]
5
+ #
6
+ class AirbrakeGenerator < Rails::Generators::Base
7
+ # Adds current directory to source paths, so we can find the template file.
8
+ source_root File.expand_path(__dir__)
9
+
10
+ argument :project_id, required: false
11
+ argument :project_key, required: false
12
+
13
+ # Makes the NAME option optional, which allows to subclass from Base, so we
14
+ # can pass arguments to the ERB template.
15
+ #
16
+ # @see http://asciicasts.com/episodes/218-making-generators-in-rails-3
17
+ argument :name, type: :string, default: 'application'
18
+
19
+ desc 'Configures the Airbrake notifier with your project id and project key'
20
+ def generate_layout
21
+ template 'airbrake_initializer.rb.erb', 'config/initializers/airbrake.rb'
22
+ end
23
+ end
@@ -0,0 +1,78 @@
1
+ # Airbrake is an online tool that provides robust exception tracking in your Rails
2
+ # applications. In doing so, it allows you to easily review errors, tie an error
3
+ # to an individual piece of code, and trace the cause back to recent
4
+ # changes. Airbrake enables for easy categorization, searching, and prioritization
5
+ # of exceptions so that when errors occur, your team can quickly determine the
6
+ # root cause.
7
+ #
8
+ # Configuration details:
9
+ # https://github.com/airbrake/airbrake-ruby#configuration
10
+ Airbrake.configure do |c|
11
+ # You must set both project_id & project_key. To find your project_id and
12
+ # project_key navigate to your project's General Settings and copy the values
13
+ # from the right sidebar.
14
+ # https://github.com/airbrake/airbrake-ruby#project_id--project_key
15
+ <% if project_id -%>
16
+ c.project_id = <%= project_id %>
17
+ <% else -%>
18
+ c.project_id = ENV['AIRBRAKE_PROJECT_ID']
19
+ <% end -%>
20
+ <% if project_key -%>
21
+ c.project_key = '<%= project_key %>'
22
+ <% else -%>
23
+ c.project_key = ENV['AIRBRAKE_API_KEY']
24
+ <% end -%>
25
+
26
+ # Configures the root directory of your project. Expects a String or a
27
+ # Pathname, which represents the path to your project. Providing this option
28
+ # helps us to filter out repetitive data from backtrace frames and link to
29
+ # GitHub files from our dashboard.
30
+ # https://github.com/airbrake/airbrake-ruby#root_directory
31
+ c.root_directory = Rails.root
32
+
33
+ # By default, Airbrake Ruby outputs to STDOUT. In Rails apps it makes sense to
34
+ # use the Rails' logger.
35
+ # https://github.com/airbrake/airbrake-ruby#logger
36
+ c.logger = Airbrake::Rails.logger
37
+
38
+ # Configures the environment the application is running in. Helps the Airbrake
39
+ # dashboard to distinguish between exceptions occurring in different
40
+ # environments.
41
+ # NOTE: This option must be set in order to make the 'ignore_environments'
42
+ # option work.
43
+ # https://github.com/airbrake/airbrake-ruby#environment
44
+ c.environment = Rails.env
45
+
46
+ # Setting this option allows Airbrake to filter exceptions occurring in
47
+ # unwanted environments such as :test.
48
+ # NOTE: This option *does not* work if you don't set the 'environment' option.
49
+ # https://github.com/airbrake/airbrake-ruby#ignore_environments
50
+ c.ignore_environments = %w[test]
51
+
52
+ # A list of parameters that should be filtered out of what is sent to
53
+ # Airbrake. By default, all "password" attributes will have their contents
54
+ # replaced.
55
+ # https://github.com/airbrake/airbrake-ruby#blacklist_keys
56
+ c.blacklist_keys = [/password/i, /authorization/i]
57
+
58
+ # Alternatively, you can integrate with Rails' filter_parameters.
59
+ # Read more: https://goo.gl/gqQ1xS
60
+ # c.blacklist_keys = Rails.application.config.filter_parameters
61
+ end
62
+
63
+ # A filter that collects request body information. Enable it if you are sure you
64
+ # don't send sensitive information to Airbrake in your body (such as passwords).
65
+ # https://github.com/airbrake/airbrake#requestbodyfilter
66
+ # Airbrake.add_filter(Airbrake::Rack::RequestBodyFilter.new)
67
+
68
+ # Attaches thread & fiber local variables along with general thread information.
69
+ # Airbrake.add_filter(Airbrake::Filters::ThreadFilter.new)
70
+
71
+ # Attaches loaded dependencies to the notice object
72
+ # (under context/versions/dependencies).
73
+ # Airbrake.add_filter(Airbrake::Filters::DependencyFilter.new)
74
+
75
+ # If you want to convert your log messages to Airbrake errors, we offer an
76
+ # integration with the Logger class from stdlib.
77
+ # https://github.com/airbrake/airbrake#logger
78
+ # Rails.logger = Airbrake::AirbrakeLogger.new(Rails.logger)
metadata ADDED
@@ -0,0 +1,416 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: airbrake
3
+ version: !ruby/object:Gem::Version
4
+ version: 9.5.0
5
+ platform: ruby
6
+ authors:
7
+ - Airbrake Technologies, Inc.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-10-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: airbrake-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-wait
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '12'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '12'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: appraisal
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rack
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sneakers
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '2'
139
+ - !ruby/object:Gem::Dependency
140
+ name: amq-protocol
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 2.2.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 2.2.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: rack-test
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 0.6.3
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 0.6.3
167
+ - !ruby/object:Gem::Dependency
168
+ name: redis
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '='
172
+ - !ruby/object:Gem::Version
173
+ version: 3.3.3
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '='
179
+ - !ruby/object:Gem::Version
180
+ version: 3.3.3
181
+ - !ruby/object:Gem::Dependency
182
+ name: public_suffix
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '2.0'
188
+ - - "<"
189
+ - !ruby/object:Gem::Version
190
+ version: '3.0'
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: '2.0'
198
+ - - "<"
199
+ - !ruby/object:Gem::Version
200
+ version: '3.0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: nokogiri
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - '='
206
+ - !ruby/object:Gem::Version
207
+ version: 1.9.1
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - '='
213
+ - !ruby/object:Gem::Version
214
+ version: 1.9.1
215
+ - !ruby/object:Gem::Dependency
216
+ name: parallel
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - '='
220
+ - !ruby/object:Gem::Version
221
+ version: 1.13.0
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - '='
227
+ - !ruby/object:Gem::Version
228
+ version: 1.13.0
229
+ - !ruby/object:Gem::Dependency
230
+ name: minitest
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - '='
234
+ - !ruby/object:Gem::Version
235
+ version: 5.11.3
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - '='
241
+ - !ruby/object:Gem::Version
242
+ version: 5.11.3
243
+ - !ruby/object:Gem::Dependency
244
+ name: sidekiq
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '5'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '5'
257
+ - !ruby/object:Gem::Dependency
258
+ name: curb
259
+ requirement: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '0.9'
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: '0.9'
271
+ - !ruby/object:Gem::Dependency
272
+ name: excon
273
+ requirement: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: '0.64'
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '0.64'
285
+ - !ruby/object:Gem::Dependency
286
+ name: http
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: '2.2'
292
+ type: :development
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '2.2'
299
+ - !ruby/object:Gem::Dependency
300
+ name: httpclient
301
+ requirement: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - "~>"
304
+ - !ruby/object:Gem::Version
305
+ version: '2.8'
306
+ type: :development
307
+ prerelease: false
308
+ version_requirements: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - "~>"
311
+ - !ruby/object:Gem::Version
312
+ version: '2.8'
313
+ - !ruby/object:Gem::Dependency
314
+ name: typhoeus
315
+ requirement: !ruby/object:Gem::Requirement
316
+ requirements:
317
+ - - "~>"
318
+ - !ruby/object:Gem::Version
319
+ version: '1.3'
320
+ type: :development
321
+ prerelease: false
322
+ version_requirements: !ruby/object:Gem::Requirement
323
+ requirements:
324
+ - - "~>"
325
+ - !ruby/object:Gem::Version
326
+ version: '1.3'
327
+ description: |
328
+ Airbrake is an online tool that provides robust exception tracking in any of
329
+ your Ruby applications. In doing so, it allows you to easily review errors, tie
330
+ an error to an individual piece of code, and trace the cause back to recent
331
+ changes. The Airbrake dashboard provides easy categorization, searching, and
332
+ prioritization of exceptions so that when errors occur, your team can quickly
333
+ determine the root cause.
334
+
335
+ Additionally, this gem includes integrations with such popular libraries and
336
+ frameworks as Rails, Sinatra, Resque, Sidekiq, Delayed Job, Shoryuken,
337
+ ActiveJob and many more.
338
+ email: support@airbrake.io
339
+ executables: []
340
+ extensions: []
341
+ extra_rdoc_files: []
342
+ files:
343
+ - lib/airbrake.rb
344
+ - lib/airbrake/capistrano.rb
345
+ - lib/airbrake/capistrano/capistrano2.rb
346
+ - lib/airbrake/capistrano/capistrano3.rb
347
+ - lib/airbrake/delayed_job.rb
348
+ - lib/airbrake/logger.rb
349
+ - lib/airbrake/rack.rb
350
+ - lib/airbrake/rack/context_filter.rb
351
+ - lib/airbrake/rack/http_headers_filter.rb
352
+ - lib/airbrake/rack/http_params_filter.rb
353
+ - lib/airbrake/rack/instrumentable.rb
354
+ - lib/airbrake/rack/middleware.rb
355
+ - lib/airbrake/rack/request_body_filter.rb
356
+ - lib/airbrake/rack/request_store.rb
357
+ - lib/airbrake/rack/route_filter.rb
358
+ - lib/airbrake/rack/session_filter.rb
359
+ - lib/airbrake/rack/user.rb
360
+ - lib/airbrake/rack/user_filter.rb
361
+ - lib/airbrake/rails.rb
362
+ - lib/airbrake/rails/action_cable.rb
363
+ - lib/airbrake/rails/action_cable/notify_callback.rb
364
+ - lib/airbrake/rails/action_controller.rb
365
+ - lib/airbrake/rails/action_controller_notify_subscriber.rb
366
+ - lib/airbrake/rails/action_controller_performance_breakdown_subscriber.rb
367
+ - lib/airbrake/rails/action_controller_route_subscriber.rb
368
+ - lib/airbrake/rails/active_job.rb
369
+ - lib/airbrake/rails/active_record.rb
370
+ - lib/airbrake/rails/active_record_subscriber.rb
371
+ - lib/airbrake/rails/app.rb
372
+ - lib/airbrake/rails/backtrace_cleaner.rb
373
+ - lib/airbrake/rails/curb.rb
374
+ - lib/airbrake/rails/event.rb
375
+ - lib/airbrake/rails/excon_subscriber.rb
376
+ - lib/airbrake/rails/http.rb
377
+ - lib/airbrake/rails/http_client.rb
378
+ - lib/airbrake/rails/net_http.rb
379
+ - lib/airbrake/rails/railtie.rb
380
+ - lib/airbrake/rails/typhoeus.rb
381
+ - lib/airbrake/rake.rb
382
+ - lib/airbrake/rake/tasks.rb
383
+ - lib/airbrake/resque.rb
384
+ - lib/airbrake/shoryuken.rb
385
+ - lib/airbrake/sidekiq.rb
386
+ - lib/airbrake/sidekiq/retryable_jobs_filter.rb
387
+ - lib/airbrake/sneakers.rb
388
+ - lib/airbrake/version.rb
389
+ - lib/generators/airbrake_generator.rb
390
+ - lib/generators/airbrake_initializer.rb.erb
391
+ homepage: https://airbrake.io
392
+ licenses:
393
+ - MIT
394
+ metadata: {}
395
+ post_install_message:
396
+ rdoc_options: []
397
+ require_paths:
398
+ - lib
399
+ required_ruby_version: !ruby/object:Gem::Requirement
400
+ requirements:
401
+ - - ">="
402
+ - !ruby/object:Gem::Version
403
+ version: '2.1'
404
+ required_rubygems_version: !ruby/object:Gem::Requirement
405
+ requirements:
406
+ - - ">="
407
+ - !ruby/object:Gem::Version
408
+ version: '0'
409
+ requirements: []
410
+ rubyforge_project:
411
+ rubygems_version: 2.7.6.2
412
+ signing_key:
413
+ specification_version: 4
414
+ summary: Airbrake is an online tool that provides robust exception tracking in any
415
+ of your Ruby applications.
416
+ test_files: []