airbrake 3.1.6 → 11.0.0

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