bugsnag 6.13.1 → 6.18.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 (651) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +11 -0
  3. data/CHANGELOG.md +88 -0
  4. data/VERSION +1 -1
  5. data/bugsnag.gemspec +1 -1
  6. data/lib/bugsnag.rb +181 -29
  7. data/lib/bugsnag/breadcrumbs/breadcrumb.rb +1 -1
  8. data/lib/bugsnag/breadcrumbs/breadcrumbs.rb +0 -2
  9. data/lib/bugsnag/breadcrumbs/validator.rb +0 -6
  10. data/lib/bugsnag/cleaner.rb +109 -56
  11. data/lib/bugsnag/code_extractor.rb +137 -0
  12. data/lib/bugsnag/configuration.rb +226 -23
  13. data/lib/bugsnag/delivery/synchronous.rb +1 -1
  14. data/lib/bugsnag/delivery/thread_queue.rb +18 -3
  15. data/lib/bugsnag/helpers.rb +4 -6
  16. data/lib/bugsnag/integrations/delayed_job.rb +13 -1
  17. data/lib/bugsnag/integrations/mailman.rb +2 -1
  18. data/lib/bugsnag/integrations/que.rb +2 -1
  19. data/lib/bugsnag/integrations/rack.rb +3 -1
  20. data/lib/bugsnag/integrations/railtie.rb +17 -5
  21. data/lib/bugsnag/integrations/rake.rb +4 -2
  22. data/lib/bugsnag/integrations/resque.rb +12 -5
  23. data/lib/bugsnag/integrations/shoryuken.rb +2 -1
  24. data/lib/bugsnag/integrations/sidekiq.rb +1 -2
  25. data/lib/bugsnag/middleware/delayed_job.rb +1 -0
  26. data/lib/bugsnag/middleware/discard_error_class.rb +30 -0
  27. data/lib/bugsnag/middleware/ignore_error_class.rb +2 -0
  28. data/lib/bugsnag/middleware/rack_request.rb +2 -4
  29. data/lib/bugsnag/middleware_stack.rb +38 -3
  30. data/lib/bugsnag/on_error_callbacks.rb +33 -0
  31. data/lib/bugsnag/report.rb +88 -16
  32. data/lib/bugsnag/session_tracker.rb +3 -3
  33. data/lib/bugsnag/stacktrace.rb +28 -72
  34. metadata +6 -619
  35. data/.buildkite/pipeline.yml +0 -470
  36. data/.github/PULL_REQUEST_TEMPLATE.md +0 -84
  37. data/.gitignore +0 -55
  38. data/.rdoc_options +0 -27
  39. data/.rspec +0 -3
  40. data/.rubocop.yml +0 -2
  41. data/.rubocop_todo.yml +0 -679
  42. data/CONTRIBUTING.md +0 -64
  43. data/Gemfile +0 -48
  44. data/Rakefile +0 -37
  45. data/TESTING.md +0 -81
  46. data/UPGRADING.md +0 -91
  47. data/docker-compose.yml +0 -46
  48. data/dockerfiles/Dockerfile.jruby-unit-tests +0 -13
  49. data/dockerfiles/Dockerfile.ruby-maze-runner +0 -26
  50. data/dockerfiles/Dockerfile.ruby-unit-tests +0 -12
  51. data/features/.gitignore +0 -1
  52. data/features/delayed_job.feature +0 -36
  53. data/features/fixtures/delayed_job/Dockerfile +0 -15
  54. data/features/fixtures/delayed_job/app/.gitignore +0 -21
  55. data/features/fixtures/delayed_job/app/Gemfile +0 -57
  56. data/features/fixtures/delayed_job/app/README.md +0 -24
  57. data/features/fixtures/delayed_job/app/Rakefile +0 -24
  58. data/features/fixtures/delayed_job/app/app/assets/config/manifest.js +0 -3
  59. data/features/fixtures/delayed_job/app/app/assets/images/.keep +0 -0
  60. data/features/fixtures/delayed_job/app/app/assets/javascripts/application.js +0 -16
  61. data/features/fixtures/delayed_job/app/app/assets/javascripts/cable.js +0 -13
  62. data/features/fixtures/delayed_job/app/app/assets/javascripts/channels/.keep +0 -0
  63. data/features/fixtures/delayed_job/app/app/assets/stylesheets/application.css +0 -15
  64. data/features/fixtures/delayed_job/app/app/channels/application_cable/channel.rb +0 -4
  65. data/features/fixtures/delayed_job/app/app/channels/application_cable/connection.rb +0 -4
  66. data/features/fixtures/delayed_job/app/app/controllers/application_controller.rb +0 -3
  67. data/features/fixtures/delayed_job/app/app/controllers/concerns/.keep +0 -0
  68. data/features/fixtures/delayed_job/app/app/helpers/application_helper.rb +0 -2
  69. data/features/fixtures/delayed_job/app/app/jobs/application_job.rb +0 -2
  70. data/features/fixtures/delayed_job/app/app/mailers/application_mailer.rb +0 -4
  71. data/features/fixtures/delayed_job/app/app/models/application_record.rb +0 -3
  72. data/features/fixtures/delayed_job/app/app/models/concerns/.keep +0 -0
  73. data/features/fixtures/delayed_job/app/app/models/test_model.rb +0 -10
  74. data/features/fixtures/delayed_job/app/app/views/layouts/application.html.erb +0 -14
  75. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.html.erb +0 -13
  76. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.text.erb +0 -1
  77. data/features/fixtures/delayed_job/app/config.ru +0 -5
  78. data/features/fixtures/delayed_job/app/config/application.rb +0 -15
  79. data/features/fixtures/delayed_job/app/config/boot.rb +0 -3
  80. data/features/fixtures/delayed_job/app/config/cable.yml +0 -9
  81. data/features/fixtures/delayed_job/app/config/database.yml +0 -25
  82. data/features/fixtures/delayed_job/app/config/environment.rb +0 -5
  83. data/features/fixtures/delayed_job/app/config/environments/development.rb +0 -54
  84. data/features/fixtures/delayed_job/app/config/environments/production.rb +0 -86
  85. data/features/fixtures/delayed_job/app/config/environments/test.rb +0 -42
  86. data/features/fixtures/delayed_job/app/config/initializers/application_controller_renderer.rb +0 -8
  87. data/features/fixtures/delayed_job/app/config/initializers/assets.rb +0 -11
  88. data/features/fixtures/delayed_job/app/config/initializers/backtrace_silencers.rb +0 -7
  89. data/features/fixtures/delayed_job/app/config/initializers/bugsnag.rb +0 -14
  90. data/features/fixtures/delayed_job/app/config/initializers/cookies_serializer.rb +0 -5
  91. data/features/fixtures/delayed_job/app/config/initializers/delayed_job.rb +0 -3
  92. data/features/fixtures/delayed_job/app/config/initializers/filter_parameter_logging.rb +0 -4
  93. data/features/fixtures/delayed_job/app/config/initializers/inflections.rb +0 -16
  94. data/features/fixtures/delayed_job/app/config/initializers/mime_types.rb +0 -4
  95. data/features/fixtures/delayed_job/app/config/initializers/new_framework_defaults.rb +0 -26
  96. data/features/fixtures/delayed_job/app/config/initializers/session_store.rb +0 -3
  97. data/features/fixtures/delayed_job/app/config/initializers/wrap_parameters.rb +0 -14
  98. data/features/fixtures/delayed_job/app/config/locales/en.yml +0 -23
  99. data/features/fixtures/delayed_job/app/config/puma.rb +0 -47
  100. data/features/fixtures/delayed_job/app/config/routes.rb +0 -3
  101. data/features/fixtures/delayed_job/app/config/secrets.yml +0 -22
  102. data/features/fixtures/delayed_job/app/config/spring.rb +0 -6
  103. data/features/fixtures/delayed_job/app/db/migrate/20181024232549_create_delayed_jobs.rb +0 -22
  104. data/features/fixtures/delayed_job/app/db/migrate/20181024232817_create_test_models.rb +0 -8
  105. data/features/fixtures/delayed_job/app/db/schema.rb +0 -30
  106. data/features/fixtures/delayed_job/app/db/seeds.rb +0 -7
  107. data/features/fixtures/delayed_job/app/lib/assets/.keep +0 -0
  108. data/features/fixtures/delayed_job/app/lib/tasks/.keep +0 -0
  109. data/features/fixtures/delayed_job/app/log/.keep +0 -0
  110. data/features/fixtures/delayed_job/app/public/404.html +0 -67
  111. data/features/fixtures/delayed_job/app/public/422.html +0 -67
  112. data/features/fixtures/delayed_job/app/public/500.html +0 -66
  113. data/features/fixtures/delayed_job/app/public/apple-touch-icon-precomposed.png +0 -0
  114. data/features/fixtures/delayed_job/app/public/apple-touch-icon.png +0 -0
  115. data/features/fixtures/delayed_job/app/public/favicon.ico +0 -0
  116. data/features/fixtures/delayed_job/app/public/robots.txt +0 -5
  117. data/features/fixtures/delayed_job/app/test/controllers/.keep +0 -0
  118. data/features/fixtures/delayed_job/app/test/fixtures/.keep +0 -0
  119. data/features/fixtures/delayed_job/app/test/fixtures/files/.keep +0 -0
  120. data/features/fixtures/delayed_job/app/test/fixtures/test_models.yml +0 -11
  121. data/features/fixtures/delayed_job/app/test/helpers/.keep +0 -0
  122. data/features/fixtures/delayed_job/app/test/integration/.keep +0 -0
  123. data/features/fixtures/delayed_job/app/test/mailers/.keep +0 -0
  124. data/features/fixtures/delayed_job/app/test/models/.keep +0 -0
  125. data/features/fixtures/delayed_job/app/test/models/test_model_test.rb +0 -7
  126. data/features/fixtures/delayed_job/app/test/test_helper.rb +0 -10
  127. data/features/fixtures/delayed_job/app/tmp/.keep +0 -0
  128. data/features/fixtures/docker-compose.yml +0 -299
  129. data/features/fixtures/expected_breadcrumbs/active_job.json +0 -9
  130. data/features/fixtures/expected_breadcrumbs/mongo_failed.json +0 -15
  131. data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +0 -15
  132. data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +0 -15
  133. data/features/fixtures/expected_breadcrumbs/mongo_success.json +0 -14
  134. data/features/fixtures/expected_breadcrumbs/request.json +0 -13
  135. data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +0 -12
  136. data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +0 -11
  137. data/features/fixtures/plain/.dockerignore +0 -2
  138. data/features/fixtures/plain/Dockerfile +0 -11
  139. data/features/fixtures/plain/app/Gemfile +0 -3
  140. data/features/fixtures/plain/app/app.rb +0 -38
  141. data/features/fixtures/plain/app/configuration/api_key.rb +0 -9
  142. data/features/fixtures/plain/app/configuration/proxy.rb +0 -14
  143. data/features/fixtures/plain/app/configuration/send_handled.rb +0 -7
  144. data/features/fixtures/plain/app/configuration/send_unhandled.rb +0 -9
  145. data/features/fixtures/plain/app/delivery/fork_threadpool.rb +0 -27
  146. data/features/fixtures/plain/app/delivery/synchronous.rb +0 -14
  147. data/features/fixtures/plain/app/delivery/threadpool.rb +0 -14
  148. data/features/fixtures/plain/app/exception_data/crash.rb +0 -34
  149. data/features/fixtures/plain/app/exception_data/handled_context.rb +0 -10
  150. data/features/fixtures/plain/app/exception_data/handled_hash.rb +0 -10
  151. data/features/fixtures/plain/app/exception_data/handled_meta_data.rb +0 -10
  152. data/features/fixtures/plain/app/exception_data/handled_user_id.rb +0 -10
  153. data/features/fixtures/plain/app/exception_data/unhandled_context.rb +0 -7
  154. data/features/fixtures/plain/app/exception_data/unhandled_hash.rb +0 -7
  155. data/features/fixtures/plain/app/exception_data/unhandled_meta_data.rb +0 -7
  156. data/features/fixtures/plain/app/exception_data/unhandled_user_id.rb +0 -7
  157. data/features/fixtures/plain/app/filters/additional_filters.rb +0 -11
  158. data/features/fixtures/plain/app/filters/default_filters.rb +0 -15
  159. data/features/fixtures/plain/app/handled/block_metadata.rb +0 -15
  160. data/features/fixtures/plain/app/handled/ignore_exception.rb +0 -12
  161. data/features/fixtures/plain/app/handled/notify_exception.rb +0 -9
  162. data/features/fixtures/plain/app/handled/notify_string.rb +0 -9
  163. data/features/fixtures/plain/app/ignore_classes/handled.rb +0 -8
  164. data/features/fixtures/plain/app/ignore_classes/ignore_error.rb +0 -8
  165. data/features/fixtures/plain/app/ignore_classes/unhandled.rb +0 -4
  166. data/features/fixtures/plain/app/report_modification/add_tab.rb +0 -16
  167. data/features/fixtures/plain/app/report_modification/add_tab_existing.rb +0 -22
  168. data/features/fixtures/plain/app/report_modification/add_tab_override.rb +0 -19
  169. data/features/fixtures/plain/app/report_modification/ignore_report.rb +0 -9
  170. data/features/fixtures/plain/app/report_modification/initiators/handled_before_notify.rb +0 -10
  171. data/features/fixtures/plain/app/report_modification/initiators/handled_block.rb +0 -8
  172. data/features/fixtures/plain/app/report_modification/initiators/unhandled_before_notify.rb +0 -11
  173. data/features/fixtures/plain/app/report_modification/modify_api_key.rb +0 -9
  174. data/features/fixtures/plain/app/report_modification/modify_severity.rb +0 -9
  175. data/features/fixtures/plain/app/report_modification/remove_user_details.rb +0 -14
  176. data/features/fixtures/plain/app/report_modification/set_custom_user_details.rb +0 -16
  177. data/features/fixtures/plain/app/report_modification/set_user_details.rb +0 -13
  178. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_before_notify.rb +0 -29
  179. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_block.rb +0 -24
  180. data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb +0 -26
  181. data/features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb +0 -13
  182. data/features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb +0 -9
  183. data/features/fixtures/plain/app/unhandled/bad_syntax.rb +0 -1
  184. data/features/fixtures/plain/app/unhandled/custom_error.rb +0 -9
  185. data/features/fixtures/plain/app/unhandled/interrupt.rb +0 -6
  186. data/features/fixtures/plain/app/unhandled/load_error.rb +0 -6
  187. data/features/fixtures/plain/app/unhandled/local_jump_error.rb +0 -10
  188. data/features/fixtures/plain/app/unhandled/name_error.rb +0 -6
  189. data/features/fixtures/plain/app/unhandled/no_method_error.rb +0 -6
  190. data/features/fixtures/plain/app/unhandled/runtime_error.rb +0 -6
  191. data/features/fixtures/plain/app/unhandled/syntax_error.rb +0 -6
  192. data/features/fixtures/plain/app/unhandled/system_call_error.rb +0 -6
  193. data/features/fixtures/plain/app/unhandled/system_exit.rb +0 -6
  194. data/features/fixtures/plain/json/delivery_fork.json +0 -4
  195. data/features/fixtures/plain/json/delivery_synchronous.json +0 -4
  196. data/features/fixtures/plain/json/delivery_threadpool.json +0 -4
  197. data/features/fixtures/plain/json/filters_default_metadata_filters.json +0 -9
  198. data/features/fixtures/rack1/.dockerignore +0 -1
  199. data/features/fixtures/rack1/Dockerfile +0 -13
  200. data/features/fixtures/rack1/Gemfile +0 -4
  201. data/features/fixtures/rack1/app.rb +0 -8
  202. data/features/fixtures/rack2/.dockerignore +0 -1
  203. data/features/fixtures/rack2/Dockerfile +0 -13
  204. data/features/fixtures/rack2/Gemfile +0 -4
  205. data/features/fixtures/rack2/app.rb +0 -8
  206. data/features/fixtures/rails3/.dockerignore +0 -1
  207. data/features/fixtures/rails3/Dockerfile +0 -15
  208. data/features/fixtures/rails3/app/.gitignore +0 -15
  209. data/features/fixtures/rails3/app/Gemfile +0 -17
  210. data/features/fixtures/rails3/app/Rakefile +0 -7
  211. data/features/fixtures/rails3/app/app/assets/images/rails.png +0 -0
  212. data/features/fixtures/rails3/app/app/assets/javascripts/application.js +0 -15
  213. data/features/fixtures/rails3/app/app/assets/stylesheets/application.css +0 -13
  214. data/features/fixtures/rails3/app/app/controllers/api_key_controller.rb +0 -20
  215. data/features/fixtures/rails3/app/app/controllers/app_type_controller.rb +0 -20
  216. data/features/fixtures/rails3/app/app/controllers/app_version_controller.rb +0 -25
  217. data/features/fixtures/rails3/app/app/controllers/application_controller.rb +0 -7
  218. data/features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb +0 -31
  219. data/features/fixtures/rails3/app/app/controllers/before_notify_controller.rb +0 -44
  220. data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +0 -19
  221. data/features/fixtures/rails3/app/app/controllers/handled_controller.rb +0 -26
  222. data/features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb +0 -23
  223. data/features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb +0 -16
  224. data/features/fixtures/rails3/app/app/controllers/project_root_controller.rb +0 -25
  225. data/features/fixtures/rails3/app/app/controllers/release_stage_controller.rb +0 -20
  226. data/features/fixtures/rails3/app/app/controllers/send_code_controller.rb +0 -20
  227. data/features/fixtures/rails3/app/app/controllers/send_environment_controller.rb +0 -12
  228. data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +0 -24
  229. data/features/fixtures/rails3/app/app/controllers/unhandled_controller.rb +0 -11
  230. data/features/fixtures/rails3/app/app/controllers/warden_controller.rb +0 -30
  231. data/features/fixtures/rails3/app/app/helpers/application_helper.rb +0 -2
  232. data/features/fixtures/rails3/app/app/mailers/.gitkeep +0 -0
  233. data/features/fixtures/rails3/app/app/models/.gitkeep +0 -0
  234. data/features/fixtures/rails3/app/app/models/user.rb +0 -6
  235. data/features/fixtures/rails3/app/app/views/layouts/application.html.erb +0 -14
  236. data/features/fixtures/rails3/app/config.ru +0 -4
  237. data/features/fixtures/rails3/app/config/application.rb +0 -67
  238. data/features/fixtures/rails3/app/config/boot.rb +0 -6
  239. data/features/fixtures/rails3/app/config/database.yml +0 -31
  240. data/features/fixtures/rails3/app/config/environment.rb +0 -5
  241. data/features/fixtures/rails3/app/config/environments/development.rb +0 -37
  242. data/features/fixtures/rails3/app/config/environments/production.rb +0 -67
  243. data/features/fixtures/rails3/app/config/environments/rails_env.rb +0 -37
  244. data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +0 -20
  245. data/features/fixtures/rails3/app/config/initializers/secret_token.rb +0 -7
  246. data/features/fixtures/rails3/app/config/initializers/session_store.rb +0 -8
  247. data/features/fixtures/rails3/app/config/initializers/warden.rb +0 -3
  248. data/features/fixtures/rails3/app/config/initializers/wrap_parameters.rb +0 -14
  249. data/features/fixtures/rails3/app/config/locales/en.yml +0 -5
  250. data/features/fixtures/rails3/app/config/routes.rb +0 -19
  251. data/features/fixtures/rails3/app/db/migrate/20180423142727_create_users.rb +0 -45
  252. data/features/fixtures/rails3/app/db/schema.rb +0 -37
  253. data/features/fixtures/rails3/app/db/seeds.rb +0 -7
  254. data/features/fixtures/rails3/app/lib/assets/.gitkeep +0 -0
  255. data/features/fixtures/rails3/app/lib/strategies/token_strategy.rb +0 -12
  256. data/features/fixtures/rails3/app/lib/tasks/.gitkeep +0 -0
  257. data/features/fixtures/rails3/app/log/.gitkeep +0 -0
  258. data/features/fixtures/rails3/app/public/404.html +0 -26
  259. data/features/fixtures/rails3/app/public/422.html +0 -26
  260. data/features/fixtures/rails3/app/public/500.html +0 -25
  261. data/features/fixtures/rails3/app/public/favicon.ico +0 -0
  262. data/features/fixtures/rails3/app/public/index.html +0 -241
  263. data/features/fixtures/rails3/app/public/robots.txt +0 -5
  264. data/features/fixtures/rails3/app/script/rails +0 -6
  265. data/features/fixtures/rails4/.dockerignore +0 -1
  266. data/features/fixtures/rails4/Dockerfile +0 -17
  267. data/features/fixtures/rails4/app/.gitignore +0 -16
  268. data/features/fixtures/rails4/app/Gemfile +0 -46
  269. data/features/fixtures/rails4/app/README.rdoc +0 -28
  270. data/features/fixtures/rails4/app/Rakefile +0 -6
  271. data/features/fixtures/rails4/app/app/assets/images/.keep +0 -0
  272. data/features/fixtures/rails4/app/app/assets/javascripts/application.js +0 -16
  273. data/features/fixtures/rails4/app/app/assets/stylesheets/application.css +0 -13
  274. data/features/fixtures/rails4/app/app/controllers/api_key_controller.rb +0 -20
  275. data/features/fixtures/rails4/app/app/controllers/app_type_controller.rb +0 -20
  276. data/features/fixtures/rails4/app/app/controllers/app_version_controller.rb +0 -25
  277. data/features/fixtures/rails4/app/app/controllers/application_controller.rb +0 -7
  278. data/features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb +0 -31
  279. data/features/fixtures/rails4/app/app/controllers/before_notify_controller.rb +0 -44
  280. data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +0 -26
  281. data/features/fixtures/rails4/app/app/controllers/concerns/.keep +0 -0
  282. data/features/fixtures/rails4/app/app/controllers/devise_controller.rb +0 -32
  283. data/features/fixtures/rails4/app/app/controllers/handled_controller.rb +0 -26
  284. data/features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb +0 -23
  285. data/features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb +0 -16
  286. data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +0 -23
  287. data/features/fixtures/rails4/app/app/controllers/project_root_controller.rb +0 -25
  288. data/features/fixtures/rails4/app/app/controllers/release_stage_controller.rb +0 -20
  289. data/features/fixtures/rails4/app/app/controllers/send_code_controller.rb +0 -20
  290. data/features/fixtures/rails4/app/app/controllers/send_environment_controller.rb +0 -12
  291. data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +0 -24
  292. data/features/fixtures/rails4/app/app/controllers/unhandled_controller.rb +0 -11
  293. data/features/fixtures/rails4/app/app/helpers/application_helper.rb +0 -2
  294. data/features/fixtures/rails4/app/app/jobs/application_job.rb +0 -2
  295. data/features/fixtures/rails4/app/app/jobs/notify_job.rb +0 -5
  296. data/features/fixtures/rails4/app/app/mailers/.keep +0 -0
  297. data/features/fixtures/rails4/app/app/models/.keep +0 -0
  298. data/features/fixtures/rails4/app/app/models/concerns/.keep +0 -0
  299. data/features/fixtures/rails4/app/app/models/mongo_model.rb +0 -6
  300. data/features/fixtures/rails4/app/app/models/user.rb +0 -6
  301. data/features/fixtures/rails4/app/app/views/layouts/application.html.erb +0 -14
  302. data/features/fixtures/rails4/app/config.ru +0 -4
  303. data/features/fixtures/rails4/app/config/application.rb +0 -23
  304. data/features/fixtures/rails4/app/config/boot.rb +0 -4
  305. data/features/fixtures/rails4/app/config/database.yml +0 -31
  306. data/features/fixtures/rails4/app/config/environment.rb +0 -5
  307. data/features/fixtures/rails4/app/config/environments/development.rb +0 -31
  308. data/features/fixtures/rails4/app/config/environments/production.rb +0 -81
  309. data/features/fixtures/rails4/app/config/environments/rails_env.rb +0 -30
  310. data/features/fixtures/rails4/app/config/environments/test.rb +0 -31
  311. data/features/fixtures/rails4/app/config/initializers/backtrace_silencers.rb +0 -7
  312. data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +0 -20
  313. data/features/fixtures/rails4/app/config/initializers/devise.rb +0 -283
  314. data/features/fixtures/rails4/app/config/initializers/filter_parameter_logging.rb +0 -5
  315. data/features/fixtures/rails4/app/config/initializers/inflections.rb +0 -16
  316. data/features/fixtures/rails4/app/config/initializers/mime_types.rb +0 -5
  317. data/features/fixtures/rails4/app/config/initializers/secret_token.rb +0 -12
  318. data/features/fixtures/rails4/app/config/initializers/session_store.rb +0 -3
  319. data/features/fixtures/rails4/app/config/initializers/wrap_parameters.rb +0 -14
  320. data/features/fixtures/rails4/app/config/locales/devise.en.yml +0 -64
  321. data/features/fixtures/rails4/app/config/locales/en.yml +0 -23
  322. data/features/fixtures/rails4/app/config/mongoid.yml +0 -22
  323. data/features/fixtures/rails4/app/config/routes.rb +0 -21
  324. data/features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb +0 -47
  325. data/features/fixtures/rails4/app/db/seeds.rb +0 -7
  326. data/features/fixtures/rails4/app/lib/assets/.keep +0 -0
  327. data/features/fixtures/rails4/app/lib/tasks/.keep +0 -0
  328. data/features/fixtures/rails4/app/log/.keep +0 -0
  329. data/features/fixtures/rails4/app/public/404.html +0 -58
  330. data/features/fixtures/rails4/app/public/422.html +0 -58
  331. data/features/fixtures/rails4/app/public/500.html +0 -57
  332. data/features/fixtures/rails4/app/public/favicon.ico +0 -0
  333. data/features/fixtures/rails4/app/public/robots.txt +0 -5
  334. data/features/fixtures/rails4/app/test/controllers/.keep +0 -0
  335. data/features/fixtures/rails4/app/test/fixtures/.keep +0 -0
  336. data/features/fixtures/rails4/app/test/helpers/.keep +0 -0
  337. data/features/fixtures/rails4/app/test/integration/.keep +0 -0
  338. data/features/fixtures/rails4/app/test/mailers/.keep +0 -0
  339. data/features/fixtures/rails4/app/test/models/.keep +0 -0
  340. data/features/fixtures/rails4/app/test/test_helper.rb +0 -15
  341. data/features/fixtures/rails5/.dockerignore +0 -1
  342. data/features/fixtures/rails5/Dockerfile +0 -17
  343. data/features/fixtures/rails5/app/.gitignore +0 -21
  344. data/features/fixtures/rails5/app/Gemfile +0 -52
  345. data/features/fixtures/rails5/app/README.md +0 -24
  346. data/features/fixtures/rails5/app/Rakefile +0 -6
  347. data/features/fixtures/rails5/app/app/assets/config/manifest.js +0 -3
  348. data/features/fixtures/rails5/app/app/assets/images/.keep +0 -0
  349. data/features/fixtures/rails5/app/app/assets/javascripts/application.js +0 -16
  350. data/features/fixtures/rails5/app/app/assets/javascripts/cable.js +0 -13
  351. data/features/fixtures/rails5/app/app/assets/javascripts/channels/.keep +0 -0
  352. data/features/fixtures/rails5/app/app/assets/stylesheets/application.css +0 -15
  353. data/features/fixtures/rails5/app/app/channels/application_cable/channel.rb +0 -4
  354. data/features/fixtures/rails5/app/app/channels/application_cable/connection.rb +0 -4
  355. data/features/fixtures/rails5/app/app/controllers/api_key_controller.rb +0 -16
  356. data/features/fixtures/rails5/app/app/controllers/app_type_controller.rb +0 -16
  357. data/features/fixtures/rails5/app/app/controllers/app_version_controller.rb +0 -21
  358. data/features/fixtures/rails5/app/app/controllers/application_controller.rb +0 -7
  359. data/features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb +0 -27
  360. data/features/fixtures/rails5/app/app/controllers/before_notify_controller.rb +0 -40
  361. data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +0 -24
  362. data/features/fixtures/rails5/app/app/controllers/clearance_controller.rb +0 -33
  363. data/features/fixtures/rails5/app/app/controllers/concerns/.keep +0 -0
  364. data/features/fixtures/rails5/app/app/controllers/handled_controller.rb +0 -22
  365. data/features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb +0 -19
  366. data/features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb +0 -12
  367. data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +0 -22
  368. data/features/fixtures/rails5/app/app/controllers/project_root_controller.rb +0 -21
  369. data/features/fixtures/rails5/app/app/controllers/release_stage_controller.rb +0 -16
  370. data/features/fixtures/rails5/app/app/controllers/send_code_controller.rb +0 -16
  371. data/features/fixtures/rails5/app/app/controllers/send_environment_controller.rb +0 -8
  372. data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +0 -20
  373. data/features/fixtures/rails5/app/app/controllers/unhandled_controller.rb +0 -7
  374. data/features/fixtures/rails5/app/app/helpers/application_helper.rb +0 -2
  375. data/features/fixtures/rails5/app/app/jobs/application_job.rb +0 -2
  376. data/features/fixtures/rails5/app/app/jobs/notify_job.rb +0 -5
  377. data/features/fixtures/rails5/app/app/mailers/application_mailer.rb +0 -4
  378. data/features/fixtures/rails5/app/app/models/application_record.rb +0 -3
  379. data/features/fixtures/rails5/app/app/models/concerns/.keep +0 -0
  380. data/features/fixtures/rails5/app/app/models/mongo_model.rb +0 -6
  381. data/features/fixtures/rails5/app/app/models/user.rb +0 -3
  382. data/features/fixtures/rails5/app/app/views/layouts/application.html.erb +0 -14
  383. data/features/fixtures/rails5/app/app/views/layouts/mailer.html.erb +0 -13
  384. data/features/fixtures/rails5/app/app/views/layouts/mailer.text.erb +0 -1
  385. data/features/fixtures/rails5/app/config.ru +0 -5
  386. data/features/fixtures/rails5/app/config/application.rb +0 -15
  387. data/features/fixtures/rails5/app/config/boot.rb +0 -3
  388. data/features/fixtures/rails5/app/config/cable.yml +0 -9
  389. data/features/fixtures/rails5/app/config/database.yml +0 -29
  390. data/features/fixtures/rails5/app/config/environment.rb +0 -5
  391. data/features/fixtures/rails5/app/config/environments/development.rb +0 -55
  392. data/features/fixtures/rails5/app/config/environments/production.rb +0 -87
  393. data/features/fixtures/rails5/app/config/environments/rails_env.rb +0 -55
  394. data/features/fixtures/rails5/app/config/environments/test.rb +0 -55
  395. data/features/fixtures/rails5/app/config/initializers/assets.rb +0 -11
  396. data/features/fixtures/rails5/app/config/initializers/backtrace_silencers.rb +0 -7
  397. data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +0 -20
  398. data/features/fixtures/rails5/app/config/initializers/clearance.rb +0 -5
  399. data/features/fixtures/rails5/app/config/initializers/cookies_serializer.rb +0 -5
  400. data/features/fixtures/rails5/app/config/initializers/filter_parameter_logging.rb +0 -5
  401. data/features/fixtures/rails5/app/config/initializers/inflections.rb +0 -16
  402. data/features/fixtures/rails5/app/config/initializers/mime_types.rb +0 -4
  403. data/features/fixtures/rails5/app/config/initializers/new_framework_defaults.rb +0 -24
  404. data/features/fixtures/rails5/app/config/initializers/session_store.rb +0 -3
  405. data/features/fixtures/rails5/app/config/initializers/wrap_parameters.rb +0 -14
  406. data/features/fixtures/rails5/app/config/locales/devise.en.yml +0 -64
  407. data/features/fixtures/rails5/app/config/locales/en.yml +0 -23
  408. data/features/fixtures/rails5/app/config/mongoid.yml +0 -23
  409. data/features/fixtures/rails5/app/config/puma.rb +0 -47
  410. data/features/fixtures/rails5/app/config/routes.rb +0 -62
  411. data/features/fixtures/rails5/app/config/secrets.yml +0 -25
  412. data/features/fixtures/rails5/app/config/spring.rb +0 -6
  413. data/features/fixtures/rails5/app/db/migrate/20180426095545_create_users.rb +0 -17
  414. data/features/fixtures/rails5/app/db/schema.rb +0 -29
  415. data/features/fixtures/rails5/app/db/seeds.rb +0 -7
  416. data/features/fixtures/rails5/app/lib/assets/.keep +0 -0
  417. data/features/fixtures/rails5/app/lib/tasks/.keep +0 -0
  418. data/features/fixtures/rails5/app/log/.keep +0 -0
  419. data/features/fixtures/rails5/app/public/404.html +0 -67
  420. data/features/fixtures/rails5/app/public/422.html +0 -67
  421. data/features/fixtures/rails5/app/public/500.html +0 -66
  422. data/features/fixtures/rails5/app/public/apple-touch-icon-precomposed.png +0 -0
  423. data/features/fixtures/rails5/app/public/apple-touch-icon.png +0 -0
  424. data/features/fixtures/rails5/app/public/favicon.ico +0 -0
  425. data/features/fixtures/rails5/app/public/robots.txt +0 -5
  426. data/features/fixtures/rails5/app/test/controllers/.keep +0 -0
  427. data/features/fixtures/rails5/app/test/fixtures/.keep +0 -0
  428. data/features/fixtures/rails5/app/test/fixtures/files/.keep +0 -0
  429. data/features/fixtures/rails5/app/test/helpers/.keep +0 -0
  430. data/features/fixtures/rails5/app/test/integration/.keep +0 -0
  431. data/features/fixtures/rails5/app/test/mailers/.keep +0 -0
  432. data/features/fixtures/rails5/app/test/models/.keep +0 -0
  433. data/features/fixtures/rails5/app/test/test_helper.rb +0 -10
  434. data/features/fixtures/rails5/app/tmp/.keep +0 -0
  435. data/features/fixtures/rails6/.dockerignore +0 -1
  436. data/features/fixtures/rails6/Dockerfile +0 -26
  437. data/features/fixtures/rails6/app/.browserslistrc +0 -1
  438. data/features/fixtures/rails6/app/.gitignore +0 -35
  439. data/features/fixtures/rails6/app/.ruby-version +0 -1
  440. data/features/fixtures/rails6/app/Gemfile +0 -58
  441. data/features/fixtures/rails6/app/README.md +0 -24
  442. data/features/fixtures/rails6/app/Rakefile +0 -6
  443. data/features/fixtures/rails6/app/app/assets/config/manifest.js +0 -2
  444. data/features/fixtures/rails6/app/app/assets/images/.keep +0 -0
  445. data/features/fixtures/rails6/app/app/assets/stylesheets/application.css +0 -15
  446. data/features/fixtures/rails6/app/app/channels/application_cable/channel.rb +0 -4
  447. data/features/fixtures/rails6/app/app/channels/application_cable/connection.rb +0 -4
  448. data/features/fixtures/rails6/app/app/controllers/api_key_controller.rb +0 -16
  449. data/features/fixtures/rails6/app/app/controllers/app_type_controller.rb +0 -16
  450. data/features/fixtures/rails6/app/app/controllers/app_version_controller.rb +0 -21
  451. data/features/fixtures/rails6/app/app/controllers/application_controller.rb +0 -7
  452. data/features/fixtures/rails6/app/app/controllers/auto_notify_controller.rb +0 -27
  453. data/features/fixtures/rails6/app/app/controllers/before_notify_controller.rb +0 -40
  454. data/features/fixtures/rails6/app/app/controllers/breadcrumbs_controller.rb +0 -24
  455. data/features/fixtures/rails6/app/app/controllers/clearance_controller.rb +0 -33
  456. data/features/fixtures/rails6/app/app/controllers/concerns/.keep +0 -0
  457. data/features/fixtures/rails6/app/app/controllers/handled_controller.rb +0 -22
  458. data/features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb +0 -19
  459. data/features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb +0 -12
  460. data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +0 -22
  461. data/features/fixtures/rails6/app/app/controllers/project_root_controller.rb +0 -21
  462. data/features/fixtures/rails6/app/app/controllers/release_stage_controller.rb +0 -16
  463. data/features/fixtures/rails6/app/app/controllers/send_code_controller.rb +0 -16
  464. data/features/fixtures/rails6/app/app/controllers/send_environment_controller.rb +0 -8
  465. data/features/fixtures/rails6/app/app/controllers/session_tracking_controller.rb +0 -20
  466. data/features/fixtures/rails6/app/app/controllers/unhandled_controller.rb +0 -7
  467. data/features/fixtures/rails6/app/app/helpers/application_helper.rb +0 -2
  468. data/features/fixtures/rails6/app/app/javascript/channels/consumer.js +0 -6
  469. data/features/fixtures/rails6/app/app/javascript/channels/index.js +0 -5
  470. data/features/fixtures/rails6/app/app/javascript/packs/application.js +0 -9
  471. data/features/fixtures/rails6/app/app/jobs/application_job.rb +0 -7
  472. data/features/fixtures/rails6/app/app/jobs/notify_job.rb +0 -5
  473. data/features/fixtures/rails6/app/app/mailers/application_mailer.rb +0 -4
  474. data/features/fixtures/rails6/app/app/models/application_record.rb +0 -3
  475. data/features/fixtures/rails6/app/app/models/concerns/.keep +0 -0
  476. data/features/fixtures/rails6/app/app/models/mongo_model.rb +0 -6
  477. data/features/fixtures/rails6/app/app/models/user.rb +0 -3
  478. data/features/fixtures/rails6/app/app/views/layouts/application.html.erb +0 -15
  479. data/features/fixtures/rails6/app/app/views/layouts/mailer.html.erb +0 -13
  480. data/features/fixtures/rails6/app/app/views/layouts/mailer.text.erb +0 -1
  481. data/features/fixtures/rails6/app/babel.config.js +0 -70
  482. data/features/fixtures/rails6/app/config.ru +0 -5
  483. data/features/fixtures/rails6/app/config/application.rb +0 -19
  484. data/features/fixtures/rails6/app/config/boot.rb +0 -4
  485. data/features/fixtures/rails6/app/config/cable.yml +0 -13
  486. data/features/fixtures/rails6/app/config/credentials.yml.enc +0 -1
  487. data/features/fixtures/rails6/app/config/database.yml +0 -29
  488. data/features/fixtures/rails6/app/config/environment.rb +0 -5
  489. data/features/fixtures/rails6/app/config/environments/development.rb +0 -64
  490. data/features/fixtures/rails6/app/config/environments/production.rb +0 -113
  491. data/features/fixtures/rails6/app/config/environments/rails_env.rb +0 -56
  492. data/features/fixtures/rails6/app/config/environments/test.rb +0 -48
  493. data/features/fixtures/rails6/app/config/initializers/application_controller_renderer.rb +0 -8
  494. data/features/fixtures/rails6/app/config/initializers/assets.rb +0 -14
  495. data/features/fixtures/rails6/app/config/initializers/backtrace_silencers.rb +0 -7
  496. data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +0 -20
  497. data/features/fixtures/rails6/app/config/initializers/content_security_policy.rb +0 -27
  498. data/features/fixtures/rails6/app/config/initializers/cookies_serializer.rb +0 -5
  499. data/features/fixtures/rails6/app/config/initializers/filter_parameter_logging.rb +0 -5
  500. data/features/fixtures/rails6/app/config/initializers/inflections.rb +0 -16
  501. data/features/fixtures/rails6/app/config/initializers/mime_types.rb +0 -4
  502. data/features/fixtures/rails6/app/config/initializers/wrap_parameters.rb +0 -14
  503. data/features/fixtures/rails6/app/config/locales/en.yml +0 -33
  504. data/features/fixtures/rails6/app/config/mongoid.yml +0 -23
  505. data/features/fixtures/rails6/app/config/puma.rb +0 -35
  506. data/features/fixtures/rails6/app/config/routes.rb +0 -62
  507. data/features/fixtures/rails6/app/config/secrets.yml +0 -25
  508. data/features/fixtures/rails6/app/config/spring.rb +0 -6
  509. data/features/fixtures/rails6/app/config/storage.yml +0 -34
  510. data/features/fixtures/rails6/app/config/webpack/development.js +0 -5
  511. data/features/fixtures/rails6/app/config/webpack/environment.js +0 -3
  512. data/features/fixtures/rails6/app/config/webpack/production.js +0 -5
  513. data/features/fixtures/rails6/app/config/webpack/rails_env.js +0 -5
  514. data/features/fixtures/rails6/app/config/webpack/test.js +0 -5
  515. data/features/fixtures/rails6/app/config/webpacker.yml +0 -121
  516. data/features/fixtures/rails6/app/db/migrate/20180426095545_create_users.rb +0 -17
  517. data/features/fixtures/rails6/app/db/schema.rb +0 -29
  518. data/features/fixtures/rails6/app/db/seeds.rb +0 -7
  519. data/features/fixtures/rails6/app/lib/assets/.keep +0 -0
  520. data/features/fixtures/rails6/app/lib/tasks/.keep +0 -0
  521. data/features/fixtures/rails6/app/log/.keep +0 -0
  522. data/features/fixtures/rails6/app/package.json +0 -15
  523. data/features/fixtures/rails6/app/postcss.config.js +0 -12
  524. data/features/fixtures/rails6/app/public/404.html +0 -67
  525. data/features/fixtures/rails6/app/public/422.html +0 -67
  526. data/features/fixtures/rails6/app/public/500.html +0 -66
  527. data/features/fixtures/rails6/app/public/apple-touch-icon-precomposed.png +0 -0
  528. data/features/fixtures/rails6/app/public/apple-touch-icon.png +0 -0
  529. data/features/fixtures/rails6/app/public/favicon.ico +0 -0
  530. data/features/fixtures/rails6/app/public/robots.txt +0 -1
  531. data/features/fixtures/rails6/app/storage/.keep +0 -0
  532. data/features/fixtures/rails6/app/test/application_system_test_case.rb +0 -5
  533. data/features/fixtures/rails6/app/test/channels/application_cable/connection_test.rb +0 -11
  534. data/features/fixtures/rails6/app/test/controllers/.keep +0 -0
  535. data/features/fixtures/rails6/app/test/fixtures/.keep +0 -0
  536. data/features/fixtures/rails6/app/test/fixtures/files/.keep +0 -0
  537. data/features/fixtures/rails6/app/test/helpers/.keep +0 -0
  538. data/features/fixtures/rails6/app/test/integration/.keep +0 -0
  539. data/features/fixtures/rails6/app/test/mailers/.keep +0 -0
  540. data/features/fixtures/rails6/app/test/models/.keep +0 -0
  541. data/features/fixtures/rails6/app/test/system/.keep +0 -0
  542. data/features/fixtures/rails6/app/test/test_helper.rb +0 -13
  543. data/features/fixtures/rails6/app/tmp/.keep +0 -0
  544. data/features/fixtures/rails6/app/yarn.lock +0 -6082
  545. data/features/fixtures/resque/.dockerignore +0 -1
  546. data/features/fixtures/resque/Dockerfile +0 -14
  547. data/features/fixtures/resque/Gemfile +0 -6
  548. data/features/fixtures/resque/Rakefile +0 -4
  549. data/features/fixtures/resque/app.rb +0 -12
  550. data/features/fixtures/sidekiq/.dockerignore +0 -2
  551. data/features/fixtures/sidekiq/Dockerfile +0 -17
  552. data/features/fixtures/sidekiq/app/Gemfile +0 -7
  553. data/features/fixtures/sidekiq/app/Rakefile.rb +0 -14
  554. data/features/fixtures/sidekiq/app/app.rb +0 -35
  555. data/features/fixtures/sidekiq/app/initializers/HandledError.rb +0 -3
  556. data/features/fixtures/sidekiq/app/initializers/UnhandledError.rb +0 -3
  557. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_false.json +0 -11
  558. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_true.json +0 -12
  559. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_false.json +0 -11
  560. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_true.json +0 -12
  561. data/features/fixtures/sinatra1/.dockerignore +0 -1
  562. data/features/fixtures/sinatra1/Dockerfile +0 -13
  563. data/features/fixtures/sinatra1/Gemfile +0 -4
  564. data/features/fixtures/sinatra1/app.rb +0 -9
  565. data/features/fixtures/sinatra2/.dockerignore +0 -1
  566. data/features/fixtures/sinatra2/Dockerfile +0 -13
  567. data/features/fixtures/sinatra2/Gemfile +0 -4
  568. data/features/fixtures/sinatra2/app.rb +0 -9
  569. data/features/plain_features/add_tab.feature +0 -49
  570. data/features/plain_features/app_type.feature +0 -8
  571. data/features/plain_features/app_version.feature +0 -8
  572. data/features/plain_features/auto_notify.feature +0 -7
  573. data/features/plain_features/delivery.feature +0 -20
  574. data/features/plain_features/exception_data.feature +0 -50
  575. data/features/plain_features/filters.feature +0 -14
  576. data/features/plain_features/handled_errors.feature +0 -42
  577. data/features/plain_features/ignore_classes.feature +0 -11
  578. data/features/plain_features/ignore_report.feature +0 -12
  579. data/features/plain_features/proxies.feature +0 -25
  580. data/features/plain_features/release_stages.feature +0 -20
  581. data/features/plain_features/report_api_key.feature +0 -14
  582. data/features/plain_features/report_severity.feature +0 -15
  583. data/features/plain_features/report_stack_frames.feature +0 -49
  584. data/features/plain_features/report_user.feature +0 -45
  585. data/features/plain_features/unhandled_errors.feature +0 -33
  586. data/features/rails_features/api_key.feature +0 -15
  587. data/features/rails_features/app_type.feature +0 -24
  588. data/features/rails_features/app_version.feature +0 -26
  589. data/features/rails_features/auto_capture_sessions.feature +0 -34
  590. data/features/rails_features/auto_notify.feature +0 -41
  591. data/features/rails_features/before_notify.feature +0 -44
  592. data/features/rails_features/breadcrumbs.feature +0 -43
  593. data/features/rails_features/handled.feature +0 -42
  594. data/features/rails_features/ignore_classes.feature +0 -14
  595. data/features/rails_features/meta_data_filters.feature +0 -14
  596. data/features/rails_features/mongo_breadcrumbs.feature +0 -26
  597. data/features/rails_features/project_root.feature +0 -35
  598. data/features/rails_features/release_stage.feature +0 -27
  599. data/features/rails_features/send_code.feature +0 -18
  600. data/features/rails_features/send_environment.feature +0 -13
  601. data/features/rails_features/unhandled.feature +0 -16
  602. data/features/rails_features/user_info.feature +0 -52
  603. data/features/sidekiq.feature +0 -30
  604. data/features/steps/ruby_notifier_steps.rb +0 -75
  605. data/features/support/env.rb +0 -23
  606. data/issue_template.md +0 -48
  607. data/spec/breadcrumbs/breadcrumb_spec.rb +0 -93
  608. data/spec/breadcrumbs/validator_spec.rb +0 -201
  609. data/spec/bugsnag_spec.rb +0 -366
  610. data/spec/cleaner_spec.rb +0 -244
  611. data/spec/configuration_spec.rb +0 -441
  612. data/spec/fixtures/apps/rails-initializer-config/Gemfile +0 -9
  613. data/spec/fixtures/apps/rails-initializer-config/config.ru +0 -16
  614. data/spec/fixtures/apps/rails-initializer-config/config/initializers/bugsnag.rb +0 -3
  615. data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +0 -9
  616. data/spec/fixtures/apps/rails-invalid-initializer-config/config.ru +0 -16
  617. data/spec/fixtures/apps/rails-invalid-initializer-config/config/initializers/bugsnag.rb +0 -3
  618. data/spec/fixtures/apps/rails-no-config/Gemfile +0 -9
  619. data/spec/fixtures/apps/rails-no-config/config.ru +0 -16
  620. data/spec/fixtures/apps/scripts/Gemfile +0 -3
  621. data/spec/fixtures/apps/scripts/configure_invalid_key.rb +0 -5
  622. data/spec/fixtures/apps/scripts/configure_key.rb +0 -5
  623. data/spec/fixtures/apps/scripts/no_config.rb +0 -3
  624. data/spec/fixtures/crashes/end_of_file.rb +0 -9
  625. data/spec/fixtures/crashes/short_file.rb +0 -1
  626. data/spec/fixtures/crashes/start_of_file.rb +0 -9
  627. data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
  628. data/spec/fixtures/middleware/public_info_setter.rb +0 -11
  629. data/spec/fixtures/tasks/Rakefile +0 -26
  630. data/spec/helper_spec.rb +0 -217
  631. data/spec/integration_spec.rb +0 -107
  632. data/spec/integrations/clearance_user_spec.rb +0 -38
  633. data/spec/integrations/logger_spec.rb +0 -134
  634. data/spec/integrations/mailman_spec.rb +0 -83
  635. data/spec/integrations/mongo_spec.rb +0 -262
  636. data/spec/integrations/que_spec.rb +0 -94
  637. data/spec/integrations/rack_spec.rb +0 -230
  638. data/spec/integrations/rails3_request_spec.rb +0 -67
  639. data/spec/integrations/rake_spec.rb +0 -71
  640. data/spec/integrations/resque_spec.rb +0 -99
  641. data/spec/integrations/shoryuken_spec.rb +0 -70
  642. data/spec/integrations/sidekiq_spec.rb +0 -137
  643. data/spec/integrations/warden_user_spec.rb +0 -41
  644. data/spec/middleware/exception_meta_data_spec.rb +0 -104
  645. data/spec/middleware_spec.rb +0 -254
  646. data/spec/middleware_stack_spec.rb +0 -151
  647. data/spec/report_spec.rb +0 -1282
  648. data/spec/session_tracker_spec.rb +0 -156
  649. data/spec/spec_helper.rb +0 -86
  650. data/spec/stacktrace_spec.rb +0 -129
  651. data/spec/utility/circular_buffer_spec.rb +0 -98
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25dcf74c356f7025c163ad055ddb01ecb27b46ddf31b746f87b8753d9c1899ca
4
- data.tar.gz: fab1845fb7b1165caa97a88561bdc49230603e7d8d9e218a55c0cf52af2da640
3
+ metadata.gz: 29a2a991d8e578989dee9cd0d83e348641c8985c2ac59de3840abe7dbe2691da
4
+ data.tar.gz: a75ca7b1949633520ced32c604299f9f625f980d7d2efaabf253529d1e2acae6
5
5
  SHA512:
6
- metadata.gz: d103cd0a9df8e2d02fd98a10f9b24ef706dc93c8266f148d480076c1ee2d2d06114de0c60983ca5c3275804271c9f664cdc64ddffdbc19fda1f787afb6d49e24
7
- data.tar.gz: 6d85db5571b16d3de7c23baf7c932536c08fdd9261557bbb2f59e4436981caf02177fb5b91fb7cb4adbbc62d5c6f42f610128890f7414eda85aa1e1c21248ba2
6
+ metadata.gz: a0dacb630c81e3a867df883040c3f6d16174706be29d56974b759850a9c19e6518e2fdb793365007b9d0caaecf2d8c18cc937e8df82d86fa8796fe5a08940bd2
7
+ data.tar.gz: 53d5f08ac9f375bfea5c629f0a1cf0b83684e4ae865058fdf2dd7939d9d36a888b1b87cb33af9fe04ce32e0daaca140a354c9eb4a5b3fa725a626348a47ef117
@@ -0,0 +1,11 @@
1
+ --charset UTF-8
2
+ --fail-on-warning
3
+ --hide-api private
4
+ --no-private
5
+ --protected
6
+ --title "bugsnag-ruby API Documentation"
7
+ lib/**/*.rb
8
+ -
9
+ README.md
10
+ CONTRIBUTING.md
11
+ CHANGELOG.md
@@ -1,6 +1,94 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## 6.18.0 (27 October 2020)
5
+
6
+ ### Enhancements
7
+
8
+ * Bugsnag should now report uncaught exceptions inside Bundler's 'friendly errors'
9
+ | [#634](https://github.com/bugsnag/bugsnag-ruby/pull/634)
10
+
11
+ * Improve the display of breadrumbs in the Bugsnag app by including milliseconds in timestamps
12
+ | [#639](https://github.com/bugsnag/bugsnag-ruby/pull/639)
13
+
14
+ ## 6.17.0 (27 August 2020)
15
+
16
+ ### Enhancements
17
+
18
+ * Sidekiq now uses `thread_queue` delivery by default
19
+ | [#626](https://github.com/bugsnag/bugsnag-ruby/pull/626)
20
+
21
+ * Rescue now uses `thread_queue` delivery when `at_exit` hooks are enabled
22
+ | [#629](https://github.com/bugsnag/bugsnag-ruby/pull/629)
23
+
24
+ ## 6.16.0 (12 August 2020)
25
+
26
+ ### Enhancements
27
+
28
+ * Set default Delayed Job error context to job class
29
+ | [#499](https://github.com/bugsnag/bugsnag-ruby/pull/499)
30
+ | [Mike Stewart](https://github.com/mike-stewart)
31
+
32
+ * The `BUGSNAG_RELEASE_STAGE` environment variable can now be used to set the release stage. Previously this was only used in Rails applications
33
+ | [#613](https://github.com/bugsnag/bugsnag-ruby/pull/613)
34
+
35
+ * Add support for runtime versions to Delayed Job, Mailman and Shoryuken integrations
36
+ | [#620](https://github.com/bugsnag/bugsnag-ruby/pull/620)
37
+
38
+ * Reduce the size of the bundled gem
39
+ | [#571](https://github.com/bugsnag/bugsnag-ruby/pull/571)
40
+ | [t-richards](https://github.com/t-richards)
41
+
42
+ * Move serialization of Reports onto the background thread when using the thread_queue delivery method
43
+ | [#623](https://github.com/bugsnag/bugsnag-ruby/pull/623)
44
+
45
+ ## Fixes
46
+
47
+ * The `app_type` configuration option should no longer be overwritten by Bugsnag and integrations should set this more consistently
48
+ | [#619](https://github.com/bugsnag/bugsnag-ruby/pull/619)
49
+
50
+ ## 6.15.0 (27 July 2020)
51
+
52
+ ### Enhancements
53
+
54
+ * Add `on_error` callbacks to replace `before_notify_callbacks`
55
+ | [#608](https://github.com/bugsnag/bugsnag-ruby/pull/608)
56
+
57
+ * Improve performance when extracting code from files in stacktraces
58
+ | [#604](https://github.com/bugsnag/bugsnag-ruby/pull/604)
59
+
60
+ * Reduce memory use when session tracking is disabled
61
+ | [#606](https://github.com/bugsnag/bugsnag-ruby/pull/606)
62
+
63
+ ### Deprecated
64
+
65
+ * `before_notify_callbacks` have been deprecated in favour of `on_error` and will be removed in the next major release
66
+
67
+ ## 6.14.0 (20 July 2020)
68
+
69
+ ### Enhancements
70
+
71
+ * Add configurable `discard_classes` option to allow filtering errors using either a `String` or `Regexp` matched against the error's class name
72
+ | [#597](https://github.com/bugsnag/bugsnag-ruby/pull/597)
73
+
74
+ * The Breadcrumb name limit of 30 characters has been removed
75
+ | [#600](https://github.com/bugsnag/bugsnag-ruby/pull/600)
76
+
77
+ * Improve performance of payload cleaning
78
+ | [#601](https://github.com/bugsnag/bugsnag-ruby/pull/601)
79
+
80
+ * Improve performance when processing stacktraces
81
+ | [#602](https://github.com/bugsnag/bugsnag-ruby/pull/602)
82
+ | [#603](https://github.com/bugsnag/bugsnag-ruby/pull/603)
83
+
84
+ * If a custom object responds to `id` method, show the id and class in error reports
85
+ | [#531](https://github.com/bugsnag/bugsnag-ruby/pull/531)
86
+ | [manojmj92](https://github.com/manojmj92)
87
+
88
+ ### Deprecated
89
+
90
+ * The `ignore_classes` configuration option has been deprecated in favour of `discard_classes`. `ignore_classes` will be removed in the next major release
91
+
4
92
  ## 6.13.1 (11 May 2020)
5
93
 
6
94
  ### Fixes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.13.1
1
+ 6.18.0
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.homepage = "https://github.com/bugsnag/bugsnag-ruby"
11
11
  s.licenses = ["MIT"]
12
12
 
13
- s.files = `git ls-files`.split("\n").reject {|file| file.start_with? "example/"}
13
+ s.files = `git ls-files -z lib bugsnag.gemspec VERSION .yardopts`.split("\x0")
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
16
16
  "README.md",
@@ -25,7 +25,6 @@ require "bugsnag/middleware/rails3_request"
25
25
  require "bugsnag/middleware/sidekiq"
26
26
  require "bugsnag/middleware/mailman"
27
27
  require "bugsnag/middleware/rake"
28
- require "bugsnag/middleware/callbacks"
29
28
  require "bugsnag/middleware/classify_error"
30
29
  require "bugsnag/middleware/delayed_job"
31
30
 
@@ -33,6 +32,7 @@ require "bugsnag/breadcrumbs/validator"
33
32
  require "bugsnag/breadcrumbs/breadcrumb"
34
33
  require "bugsnag/breadcrumbs/breadcrumbs"
35
34
 
35
+ # rubocop:todo Metrics/ModuleLength
36
36
  module Bugsnag
37
37
  LOCK = Mutex.new
38
38
  INTEGRATIONS = [:resque, :sidekiq, :mailman, :delayed_job, :shoryuken, :que, :mongo]
@@ -43,10 +43,19 @@ module Bugsnag
43
43
  ##
44
44
  # Configure the Bugsnag notifier application-wide settings.
45
45
  #
46
- # Yields a configuration object to use to set application settings.
46
+ # Yields a {Configuration} object to use to set application settings.
47
+ #
48
+ # @yieldparam configuration [Configuration]
49
+ # @return [void]
47
50
  def configure(validate_api_key=true)
48
51
  yield(configuration) if block_given?
49
52
 
53
+ # Create the session tracker if sessions are enabled to avoid the overhead
54
+ # of creating it on the first request. We skip this if we're not validating
55
+ # the API key as we use this internally before the user's configure block
56
+ # has run, so we don't know if sessions are enabled yet.
57
+ session_tracker if validate_api_key && configuration.auto_capture_sessions
58
+
50
59
  check_key_valid if validate_api_key
51
60
  check_endpoint_setup
52
61
 
@@ -63,7 +72,7 @@ module Bugsnag
63
72
  auto_notify = false
64
73
  end
65
74
 
66
- return unless deliver_notification?(exception, auto_notify)
75
+ return unless should_deliver_notification?(exception, auto_notify)
67
76
 
68
77
  exception = NIL_EXCEPTION_DESCRIPTION if exception.nil?
69
78
 
@@ -71,6 +80,7 @@ module Bugsnag
71
80
 
72
81
  # If this is an auto_notify we yield the block before the any middleware is run
73
82
  yield(report) if block_given? && auto_notify
83
+
74
84
  if report.ignore?
75
85
  configuration.debug("Not notifying #{report.exceptions.last[:errorClass]} due to ignore being signified in auto_notify block")
76
86
  return
@@ -97,6 +107,7 @@ module Bugsnag
97
107
  # If this is not an auto_notify then the block was provided by the user. This should be the last
98
108
  # block that is run as it is the users "most specific" block.
99
109
  yield(report) if block_given? && !auto_notify
110
+
100
111
  if report.ignore?
101
112
  configuration.debug("Not notifying #{report.exceptions.last[:errorClass]} due to ignore being signified in user provided block")
102
113
  return
@@ -111,24 +122,22 @@ module Bugsnag
111
122
  report.severity_reason = initial_reason
112
123
  end
113
124
 
114
- # Deliver
115
- configuration.info("Notifying #{configuration.notify_endpoint} of #{report.exceptions.last[:errorClass]}")
116
- options = {:headers => report.headers}
117
- payload = ::JSON.dump(Bugsnag::Helpers.trim_if_needed(report.as_json))
118
- Bugsnag::Delivery[configuration.delivery_method].deliver(configuration.notify_endpoint, payload, configuration, options)
119
- report_summary = report.summary
120
- leave_breadcrumb(report_summary[:error_class], report_summary, Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE, :auto)
125
+ deliver_notification(report)
121
126
  end
122
127
  end
123
128
 
124
129
  ##
125
- # Registers an at_exit function to automatically catch errors on exit
130
+ # Registers an at_exit function to automatically catch errors on exit.
131
+ #
132
+ # @return [void]
126
133
  def register_at_exit
127
134
  return if at_exit_handler_installed?
128
135
  @exit_handler_added = true
129
136
  at_exit do
130
137
  if $!
131
- Bugsnag.notify($!, true) do |report|
138
+ exception = unwrap_bundler_exception($!)
139
+
140
+ Bugsnag.notify(exception, true) do |report|
132
141
  report.severity = 'error'
133
142
  report.severity_reason = {
134
143
  :type => Bugsnag::Report::UNHANDLED_EXCEPTION
@@ -139,14 +148,20 @@ module Bugsnag
139
148
  end
140
149
 
141
150
  ##
142
- # Checks if an at_exit handler has been added
151
+ # Checks if an at_exit handler has been added.
152
+ #
153
+ # The {Bugsnag#configure} method will add this automatically, but it can be
154
+ # added manually using {Bugsnag#register_at_exit}.
155
+ #
156
+ # @return [Boolean]
143
157
  def at_exit_handler_installed?
144
158
  @exit_handler_added ||= false
145
159
  end
146
160
 
147
- # Configuration getters
148
161
  ##
149
162
  # Returns the client's Configuration object, or creates one if not yet created.
163
+ #
164
+ # @return [Configuration]
150
165
  def configuration
151
166
  @configuration = nil unless defined?(@configuration)
152
167
  @configuration || LOCK.synchronize { @configuration ||= Bugsnag::Configuration.new }
@@ -154,6 +169,8 @@ module Bugsnag
154
169
 
155
170
  ##
156
171
  # Returns the client's SessionTracker object, or creates one if not yet created.
172
+ #
173
+ # @return [SessionTracker]
157
174
  def session_tracker
158
175
  @session_tracker = nil unless defined?(@session_tracker)
159
176
  @session_tracker || LOCK.synchronize { @session_tracker ||= Bugsnag::SessionTracker.new}
@@ -171,11 +188,16 @@ module Bugsnag
171
188
  # Allow access to "before notify" callbacks as an array.
172
189
  #
173
190
  # These callbacks will be called whenever an error notification is being made.
191
+ #
192
+ # @deprecated Use {Bugsnag#add_on_error} instead
174
193
  def before_notify_callbacks
175
194
  Bugsnag.configuration.request_data[:before_callbacks] ||= []
176
195
  end
177
196
 
178
- # Attempts to load all integrations through auto-discovery
197
+ ##
198
+ # Attempts to load all integrations through auto-discovery.
199
+ #
200
+ # @return [void]
179
201
  def load_integrations
180
202
  require "bugsnag/integrations/railtie" if defined?(Rails::Railtie)
181
203
  INTEGRATIONS.each do |integration|
@@ -186,7 +208,11 @@ module Bugsnag
186
208
  end
187
209
  end
188
210
 
189
- # Load a specific integration
211
+ ##
212
+ # Load a specific integration.
213
+ #
214
+ # @param integration [Symbol] One of the integrations in {INTEGRATIONS}
215
+ # @return [void]
190
216
  def load_integration(integration)
191
217
  integration = :railtie if integration == :rails
192
218
  if INTEGRATIONS.include?(integration) || integration == :railtie
@@ -203,6 +229,7 @@ module Bugsnag
203
229
  # @param meta_data [Hash] String, Numeric, or Boolean meta data to attach
204
230
  # @param type [String] the breadcrumb type, from Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES
205
231
  # @param auto [Symbol] set to :auto if the breadcrumb is automatically created
232
+ # @return [void]
206
233
  def leave_breadcrumb(name, meta_data={}, type=Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE, auto=:manual)
207
234
  breadcrumb = Bugsnag::Breadcrumbs::Breadcrumb.new(name, type, meta_data, auto)
208
235
  validator = Bugsnag::Breadcrumbs::Validator.new(configuration)
@@ -211,27 +238,67 @@ module Bugsnag
211
238
  validator.validate(breadcrumb)
212
239
 
213
240
  # Skip if it's already invalid
214
- unless breadcrumb.ignore?
215
- # Run callbacks
216
- configuration.before_breadcrumb_callbacks.each do |c|
217
- c.arity > 0 ? c.call(breadcrumb) : c.call
218
- break if breadcrumb.ignore?
219
- end
241
+ return if breadcrumb.ignore?
220
242
 
221
- # Return early if ignored
222
- return if breadcrumb.ignore?
243
+ # Run callbacks
244
+ configuration.before_breadcrumb_callbacks.each do |c|
245
+ c.arity > 0 ? c.call(breadcrumb) : c.call
246
+ break if breadcrumb.ignore?
247
+ end
248
+
249
+ # Return early if ignored
250
+ return if breadcrumb.ignore?
251
+
252
+ # Validate again in case of callback alteration
253
+ validator.validate(breadcrumb)
254
+
255
+ # Add to breadcrumbs buffer if still valid
256
+ configuration.breadcrumbs << breadcrumb unless breadcrumb.ignore?
257
+ end
258
+
259
+ ##
260
+ # Add the given callback to the list of on_error callbacks
261
+ #
262
+ # The on_error callbacks will be called when an error is captured or reported
263
+ # and are passed a {Bugsnag::Report} object
264
+ #
265
+ # Returning false from an on_error callback will cause the error to be ignored
266
+ # and will prevent any remaining callbacks from being called
267
+ #
268
+ # @param callback [Proc]
269
+ # @return [void]
270
+ def add_on_error(callback)
271
+ configuration.add_on_error(callback)
272
+ end
223
273
 
224
- # Validate again in case of callback alteration
225
- validator.validate(breadcrumb)
274
+ ##
275
+ # Remove the given callback from the list of on_error callbacks
276
+ #
277
+ # Note that this must be the same Proc instance that was passed to
278
+ # {Bugsnag#add_on_error}, otherwise it will not be removed
279
+ #
280
+ # @param callback [Proc]
281
+ # @return [void]
282
+ def remove_on_error(callback)
283
+ configuration.remove_on_error(callback)
284
+ end
226
285
 
227
- # Add to breadcrumbs buffer if still valid
228
- configuration.breadcrumbs << breadcrumb unless breadcrumb.ignore?
286
+ ##
287
+ # Returns the client's Cleaner object, or creates one if not yet created.
288
+ #
289
+ # @api private
290
+ #
291
+ # @return [Cleaner]
292
+ def cleaner
293
+ @cleaner = nil unless defined?(@cleaner)
294
+ @cleaner || LOCK.synchronize do
295
+ @cleaner ||= Bugsnag::Cleaner.new(configuration)
229
296
  end
230
297
  end
231
298
 
232
299
  private
233
300
 
234
- def deliver_notification?(exception, auto_notify)
301
+ def should_deliver_notification?(exception, auto_notify)
235
302
  reason = abort_reason(exception, auto_notify)
236
303
  configuration.debug(reason) unless reason.nil?
237
304
  reason.nil?
@@ -249,6 +316,42 @@ module Bugsnag
249
316
  end
250
317
  end
251
318
 
319
+ ##
320
+ # Deliver the notification to Bugsnag
321
+ #
322
+ # @param report [Report]
323
+ # @return void
324
+ def deliver_notification(report)
325
+ configuration.info("Notifying #{configuration.notify_endpoint} of #{report.exceptions.last[:errorClass]}")
326
+
327
+ options = { headers: report.headers }
328
+
329
+ delivery_method = Bugsnag::Delivery[configuration.delivery_method]
330
+
331
+ if delivery_method.respond_to?(:serialize_and_deliver)
332
+ delivery_method.serialize_and_deliver(
333
+ configuration.notify_endpoint,
334
+ proc { report_to_json(report) },
335
+ configuration,
336
+ options
337
+ )
338
+ else
339
+ delivery_method.deliver(
340
+ configuration.notify_endpoint,
341
+ report_to_json(report),
342
+ configuration,
343
+ options
344
+ )
345
+ end
346
+
347
+ leave_breadcrumb(
348
+ report.summary[:error_class],
349
+ report.summary,
350
+ Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE,
351
+ :auto
352
+ )
353
+ end
354
+
252
355
  # Check if the API key is valid and warn (once) if it is not
253
356
  def check_key_valid
254
357
  @key_warning = false unless defined?(@key_warning)
@@ -273,7 +376,56 @@ module Bugsnag
273
376
  raise ArgumentError, "The session endpoint cannot be modified without the notify endpoint"
274
377
  end
275
378
  end
379
+
380
+ ##
381
+ # Convert the Report object to JSON
382
+ #
383
+ # We ensure the report is safe to send by removing recursion, fixing
384
+ # encoding errors and redacting metadata according to "meta_data_filters"
385
+ #
386
+ # @param report [Report]
387
+ # @return [String]
388
+ def report_to_json(report)
389
+ cleaned = cleaner.clean_object(report.as_json)
390
+ trimmed = Bugsnag::Helpers.trim_if_needed(cleaned)
391
+
392
+ ::JSON.dump(trimmed)
393
+ end
394
+
395
+ ##
396
+ # When running a script with 'bundle exec', uncaught exceptions will be
397
+ # converted to "friendly errors" which has the side effect of wrapping them
398
+ # in a SystemExit
399
+ #
400
+ # By default we ignore SystemExit, so need to unwrap the original exception
401
+ # in order to avoid ignoring real errors
402
+ #
403
+ # @param exception [Exception]
404
+ # @return [Exception]
405
+ def unwrap_bundler_exception(exception)
406
+ running_in_bundler = ENV.include?('BUNDLE_BIN_PATH')
407
+
408
+ # See if this exception came from Bundler's 'with_friendly_errors' method
409
+ return exception unless running_in_bundler
410
+ return exception unless exception.is_a?(SystemExit)
411
+ return exception unless exception.respond_to?(:cause)
412
+ return exception unless exception.backtrace.first.include?('/bundler/friendly_errors.rb')
413
+ return exception if exception.cause.nil?
414
+
415
+ unwrapped = exception.cause
416
+
417
+ # We may need to unwrap another level if the exception came from running
418
+ # an executable file directly (i.e. 'bundle exec <file>'). In this case
419
+ # there can be a SystemExit from 'with_friendly_errors' _and_ a SystemExit
420
+ # from 'kernel_load'
421
+ return unwrapped unless unwrapped.is_a?(SystemExit)
422
+ return unwrapped unless unwrapped.backtrace.first.include?('/bundler/cli/exec.rb')
423
+ return unwrapped if unwrapped.cause.nil?
424
+
425
+ unwrapped.cause
426
+ end
276
427
  end
277
428
  end
429
+ # rubocop:enable Metrics/ModuleLength
278
430
 
279
431
  Bugsnag.load_integrations unless ENV["BUGSNAG_DISABLE_AUTOCONFIGURE"]