bugsnag 6.15.0 → 6.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (655) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +11 -0
  3. data/CHANGELOG.md +72 -0
  4. data/VERSION +1 -1
  5. data/bugsnag.gemspec +1 -1
  6. data/lib/bugsnag.rb +81 -17
  7. data/lib/bugsnag/breadcrumbs/breadcrumb.rb +1 -1
  8. data/lib/bugsnag/breadcrumbs/validator.rb +0 -22
  9. data/lib/bugsnag/configuration.rb +182 -24
  10. data/lib/bugsnag/delivery/synchronous.rb +1 -1
  11. data/lib/bugsnag/delivery/thread_queue.rb +18 -3
  12. data/lib/bugsnag/helpers.rb +17 -4
  13. data/lib/bugsnag/integrations/delayed_job.rb +13 -1
  14. data/lib/bugsnag/integrations/mailman.rb +2 -1
  15. data/lib/bugsnag/integrations/mongo.rb +5 -3
  16. data/lib/bugsnag/integrations/que.rb +2 -1
  17. data/lib/bugsnag/integrations/rack.rb +3 -1
  18. data/lib/bugsnag/integrations/rails/rails_breadcrumbs.rb +2 -0
  19. data/lib/bugsnag/integrations/railtie.rb +31 -8
  20. data/lib/bugsnag/integrations/rake.rb +4 -2
  21. data/lib/bugsnag/integrations/resque.rb +12 -5
  22. data/lib/bugsnag/integrations/shoryuken.rb +2 -1
  23. data/lib/bugsnag/integrations/sidekiq.rb +1 -2
  24. data/lib/bugsnag/middleware/classify_error.rb +1 -0
  25. data/lib/bugsnag/middleware/delayed_job.rb +1 -0
  26. data/lib/bugsnag/report.rb +84 -2
  27. metadata +4 -631
  28. data/.buildkite/pipeline.yml +0 -470
  29. data/.github/PULL_REQUEST_TEMPLATE.md +0 -84
  30. data/.gitignore +0 -55
  31. data/.rdoc_options +0 -27
  32. data/.rspec +0 -3
  33. data/.rubocop.yml +0 -57
  34. data/.rubocop_todo.yml +0 -1049
  35. data/CONTRIBUTING.md +0 -64
  36. data/Gemfile +0 -50
  37. data/Rakefile +0 -37
  38. data/TESTING.md +0 -81
  39. data/UPGRADING.md +0 -91
  40. data/docker-compose.yml +0 -46
  41. data/dockerfiles/Dockerfile.jruby-unit-tests +0 -13
  42. data/dockerfiles/Dockerfile.ruby-maze-runner +0 -26
  43. data/dockerfiles/Dockerfile.ruby-unit-tests +0 -12
  44. data/features/.gitignore +0 -1
  45. data/features/delayed_job.feature +0 -36
  46. data/features/fixtures/delayed_job/Dockerfile +0 -15
  47. data/features/fixtures/delayed_job/app/.gitignore +0 -21
  48. data/features/fixtures/delayed_job/app/Gemfile +0 -57
  49. data/features/fixtures/delayed_job/app/README.md +0 -24
  50. data/features/fixtures/delayed_job/app/Rakefile +0 -24
  51. data/features/fixtures/delayed_job/app/app/assets/config/manifest.js +0 -3
  52. data/features/fixtures/delayed_job/app/app/assets/images/.keep +0 -0
  53. data/features/fixtures/delayed_job/app/app/assets/javascripts/application.js +0 -16
  54. data/features/fixtures/delayed_job/app/app/assets/javascripts/cable.js +0 -13
  55. data/features/fixtures/delayed_job/app/app/assets/javascripts/channels/.keep +0 -0
  56. data/features/fixtures/delayed_job/app/app/assets/stylesheets/application.css +0 -15
  57. data/features/fixtures/delayed_job/app/app/channels/application_cable/channel.rb +0 -4
  58. data/features/fixtures/delayed_job/app/app/channels/application_cable/connection.rb +0 -4
  59. data/features/fixtures/delayed_job/app/app/controllers/application_controller.rb +0 -3
  60. data/features/fixtures/delayed_job/app/app/controllers/concerns/.keep +0 -0
  61. data/features/fixtures/delayed_job/app/app/helpers/application_helper.rb +0 -2
  62. data/features/fixtures/delayed_job/app/app/jobs/application_job.rb +0 -2
  63. data/features/fixtures/delayed_job/app/app/mailers/application_mailer.rb +0 -4
  64. data/features/fixtures/delayed_job/app/app/models/application_record.rb +0 -3
  65. data/features/fixtures/delayed_job/app/app/models/concerns/.keep +0 -0
  66. data/features/fixtures/delayed_job/app/app/models/test_model.rb +0 -10
  67. data/features/fixtures/delayed_job/app/app/views/layouts/application.html.erb +0 -14
  68. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.html.erb +0 -13
  69. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.text.erb +0 -1
  70. data/features/fixtures/delayed_job/app/config.ru +0 -5
  71. data/features/fixtures/delayed_job/app/config/application.rb +0 -15
  72. data/features/fixtures/delayed_job/app/config/boot.rb +0 -3
  73. data/features/fixtures/delayed_job/app/config/cable.yml +0 -9
  74. data/features/fixtures/delayed_job/app/config/database.yml +0 -25
  75. data/features/fixtures/delayed_job/app/config/environment.rb +0 -5
  76. data/features/fixtures/delayed_job/app/config/environments/development.rb +0 -54
  77. data/features/fixtures/delayed_job/app/config/environments/production.rb +0 -86
  78. data/features/fixtures/delayed_job/app/config/environments/test.rb +0 -42
  79. data/features/fixtures/delayed_job/app/config/initializers/application_controller_renderer.rb +0 -8
  80. data/features/fixtures/delayed_job/app/config/initializers/assets.rb +0 -11
  81. data/features/fixtures/delayed_job/app/config/initializers/backtrace_silencers.rb +0 -7
  82. data/features/fixtures/delayed_job/app/config/initializers/bugsnag.rb +0 -14
  83. data/features/fixtures/delayed_job/app/config/initializers/cookies_serializer.rb +0 -5
  84. data/features/fixtures/delayed_job/app/config/initializers/delayed_job.rb +0 -3
  85. data/features/fixtures/delayed_job/app/config/initializers/filter_parameter_logging.rb +0 -4
  86. data/features/fixtures/delayed_job/app/config/initializers/inflections.rb +0 -16
  87. data/features/fixtures/delayed_job/app/config/initializers/mime_types.rb +0 -4
  88. data/features/fixtures/delayed_job/app/config/initializers/new_framework_defaults.rb +0 -26
  89. data/features/fixtures/delayed_job/app/config/initializers/session_store.rb +0 -3
  90. data/features/fixtures/delayed_job/app/config/initializers/wrap_parameters.rb +0 -14
  91. data/features/fixtures/delayed_job/app/config/locales/en.yml +0 -23
  92. data/features/fixtures/delayed_job/app/config/puma.rb +0 -47
  93. data/features/fixtures/delayed_job/app/config/routes.rb +0 -3
  94. data/features/fixtures/delayed_job/app/config/secrets.yml +0 -22
  95. data/features/fixtures/delayed_job/app/config/spring.rb +0 -6
  96. data/features/fixtures/delayed_job/app/db/migrate/20181024232549_create_delayed_jobs.rb +0 -22
  97. data/features/fixtures/delayed_job/app/db/migrate/20181024232817_create_test_models.rb +0 -8
  98. data/features/fixtures/delayed_job/app/db/schema.rb +0 -30
  99. data/features/fixtures/delayed_job/app/db/seeds.rb +0 -7
  100. data/features/fixtures/delayed_job/app/lib/assets/.keep +0 -0
  101. data/features/fixtures/delayed_job/app/lib/tasks/.keep +0 -0
  102. data/features/fixtures/delayed_job/app/log/.keep +0 -0
  103. data/features/fixtures/delayed_job/app/public/404.html +0 -67
  104. data/features/fixtures/delayed_job/app/public/422.html +0 -67
  105. data/features/fixtures/delayed_job/app/public/500.html +0 -66
  106. data/features/fixtures/delayed_job/app/public/apple-touch-icon-precomposed.png +0 -0
  107. data/features/fixtures/delayed_job/app/public/apple-touch-icon.png +0 -0
  108. data/features/fixtures/delayed_job/app/public/favicon.ico +0 -0
  109. data/features/fixtures/delayed_job/app/public/robots.txt +0 -5
  110. data/features/fixtures/delayed_job/app/test/controllers/.keep +0 -0
  111. data/features/fixtures/delayed_job/app/test/fixtures/.keep +0 -0
  112. data/features/fixtures/delayed_job/app/test/fixtures/files/.keep +0 -0
  113. data/features/fixtures/delayed_job/app/test/fixtures/test_models.yml +0 -11
  114. data/features/fixtures/delayed_job/app/test/helpers/.keep +0 -0
  115. data/features/fixtures/delayed_job/app/test/integration/.keep +0 -0
  116. data/features/fixtures/delayed_job/app/test/mailers/.keep +0 -0
  117. data/features/fixtures/delayed_job/app/test/models/.keep +0 -0
  118. data/features/fixtures/delayed_job/app/test/models/test_model_test.rb +0 -7
  119. data/features/fixtures/delayed_job/app/test/test_helper.rb +0 -10
  120. data/features/fixtures/delayed_job/app/tmp/.keep +0 -0
  121. data/features/fixtures/docker-compose.yml +0 -303
  122. data/features/fixtures/expected_breadcrumbs/active_job.json +0 -9
  123. data/features/fixtures/expected_breadcrumbs/mongo_failed.json +0 -15
  124. data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +0 -15
  125. data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +0 -15
  126. data/features/fixtures/expected_breadcrumbs/mongo_success.json +0 -14
  127. data/features/fixtures/expected_breadcrumbs/request.json +0 -13
  128. data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +0 -12
  129. data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +0 -11
  130. data/features/fixtures/plain/.dockerignore +0 -2
  131. data/features/fixtures/plain/Dockerfile +0 -11
  132. data/features/fixtures/plain/app/Gemfile +0 -3
  133. data/features/fixtures/plain/app/app.rb +0 -38
  134. data/features/fixtures/plain/app/configuration/api_key.rb +0 -9
  135. data/features/fixtures/plain/app/configuration/proxy.rb +0 -14
  136. data/features/fixtures/plain/app/configuration/send_handled.rb +0 -7
  137. data/features/fixtures/plain/app/configuration/send_unhandled.rb +0 -9
  138. data/features/fixtures/plain/app/delivery/fork_threadpool.rb +0 -27
  139. data/features/fixtures/plain/app/delivery/synchronous.rb +0 -14
  140. data/features/fixtures/plain/app/delivery/threadpool.rb +0 -14
  141. data/features/fixtures/plain/app/exception_data/crash.rb +0 -34
  142. data/features/fixtures/plain/app/exception_data/handled_context.rb +0 -10
  143. data/features/fixtures/plain/app/exception_data/handled_hash.rb +0 -10
  144. data/features/fixtures/plain/app/exception_data/handled_meta_data.rb +0 -10
  145. data/features/fixtures/plain/app/exception_data/handled_user_id.rb +0 -10
  146. data/features/fixtures/plain/app/exception_data/unhandled_context.rb +0 -7
  147. data/features/fixtures/plain/app/exception_data/unhandled_hash.rb +0 -7
  148. data/features/fixtures/plain/app/exception_data/unhandled_meta_data.rb +0 -7
  149. data/features/fixtures/plain/app/exception_data/unhandled_user_id.rb +0 -7
  150. data/features/fixtures/plain/app/filters/additional_filters.rb +0 -11
  151. data/features/fixtures/plain/app/filters/default_filters.rb +0 -15
  152. data/features/fixtures/plain/app/handled/block_metadata.rb +0 -15
  153. data/features/fixtures/plain/app/handled/ignore_exception.rb +0 -12
  154. data/features/fixtures/plain/app/handled/notify_exception.rb +0 -9
  155. data/features/fixtures/plain/app/handled/notify_string.rb +0 -9
  156. data/features/fixtures/plain/app/ignore_classes/handled.rb +0 -8
  157. data/features/fixtures/plain/app/ignore_classes/ignore_error.rb +0 -8
  158. data/features/fixtures/plain/app/ignore_classes/unhandled.rb +0 -4
  159. data/features/fixtures/plain/app/report_modification/add_tab.rb +0 -16
  160. data/features/fixtures/plain/app/report_modification/add_tab_existing.rb +0 -22
  161. data/features/fixtures/plain/app/report_modification/add_tab_override.rb +0 -19
  162. data/features/fixtures/plain/app/report_modification/ignore_report.rb +0 -9
  163. data/features/fixtures/plain/app/report_modification/initiators/handled_before_notify.rb +0 -10
  164. data/features/fixtures/plain/app/report_modification/initiators/handled_block.rb +0 -8
  165. data/features/fixtures/plain/app/report_modification/initiators/handled_on_error.rb +0 -10
  166. data/features/fixtures/plain/app/report_modification/initiators/unhandled_before_notify.rb +0 -11
  167. data/features/fixtures/plain/app/report_modification/initiators/unhandled_on_error.rb +0 -11
  168. data/features/fixtures/plain/app/report_modification/modify_api_key.rb +0 -9
  169. data/features/fixtures/plain/app/report_modification/modify_severity.rb +0 -9
  170. data/features/fixtures/plain/app/report_modification/remove_user_details.rb +0 -14
  171. data/features/fixtures/plain/app/report_modification/set_custom_user_details.rb +0 -16
  172. data/features/fixtures/plain/app/report_modification/set_user_details.rb +0 -13
  173. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_before_notify.rb +0 -29
  174. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_block.rb +0 -24
  175. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_on_error.rb +0 -29
  176. data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb +0 -26
  177. data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_on_error.rb +0 -26
  178. data/features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb +0 -13
  179. data/features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb +0 -9
  180. data/features/fixtures/plain/app/unhandled/bad_syntax.rb +0 -1
  181. data/features/fixtures/plain/app/unhandled/custom_error.rb +0 -9
  182. data/features/fixtures/plain/app/unhandled/interrupt.rb +0 -6
  183. data/features/fixtures/plain/app/unhandled/load_error.rb +0 -6
  184. data/features/fixtures/plain/app/unhandled/local_jump_error.rb +0 -10
  185. data/features/fixtures/plain/app/unhandled/name_error.rb +0 -6
  186. data/features/fixtures/plain/app/unhandled/no_method_error.rb +0 -6
  187. data/features/fixtures/plain/app/unhandled/runtime_error.rb +0 -6
  188. data/features/fixtures/plain/app/unhandled/syntax_error.rb +0 -6
  189. data/features/fixtures/plain/app/unhandled/system_call_error.rb +0 -6
  190. data/features/fixtures/plain/app/unhandled/system_exit.rb +0 -6
  191. data/features/fixtures/plain/json/delivery_fork.json +0 -4
  192. data/features/fixtures/plain/json/delivery_synchronous.json +0 -4
  193. data/features/fixtures/plain/json/delivery_threadpool.json +0 -4
  194. data/features/fixtures/plain/json/filters_default_metadata_filters.json +0 -9
  195. data/features/fixtures/rack1/.dockerignore +0 -1
  196. data/features/fixtures/rack1/Dockerfile +0 -13
  197. data/features/fixtures/rack1/Gemfile +0 -4
  198. data/features/fixtures/rack1/app.rb +0 -8
  199. data/features/fixtures/rack2/.dockerignore +0 -1
  200. data/features/fixtures/rack2/Dockerfile +0 -13
  201. data/features/fixtures/rack2/Gemfile +0 -4
  202. data/features/fixtures/rack2/app.rb +0 -8
  203. data/features/fixtures/rails3/.dockerignore +0 -1
  204. data/features/fixtures/rails3/Dockerfile +0 -15
  205. data/features/fixtures/rails3/app/.gitignore +0 -15
  206. data/features/fixtures/rails3/app/Gemfile +0 -17
  207. data/features/fixtures/rails3/app/Rakefile +0 -7
  208. data/features/fixtures/rails3/app/app/assets/images/rails.png +0 -0
  209. data/features/fixtures/rails3/app/app/assets/javascripts/application.js +0 -15
  210. data/features/fixtures/rails3/app/app/assets/stylesheets/application.css +0 -13
  211. data/features/fixtures/rails3/app/app/controllers/api_key_controller.rb +0 -20
  212. data/features/fixtures/rails3/app/app/controllers/app_type_controller.rb +0 -20
  213. data/features/fixtures/rails3/app/app/controllers/app_version_controller.rb +0 -25
  214. data/features/fixtures/rails3/app/app/controllers/application_controller.rb +0 -7
  215. data/features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb +0 -31
  216. data/features/fixtures/rails3/app/app/controllers/before_notify_controller.rb +0 -44
  217. data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +0 -19
  218. data/features/fixtures/rails3/app/app/controllers/handled_controller.rb +0 -26
  219. data/features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb +0 -23
  220. data/features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb +0 -16
  221. data/features/fixtures/rails3/app/app/controllers/project_root_controller.rb +0 -25
  222. data/features/fixtures/rails3/app/app/controllers/release_stage_controller.rb +0 -20
  223. data/features/fixtures/rails3/app/app/controllers/send_code_controller.rb +0 -20
  224. data/features/fixtures/rails3/app/app/controllers/send_environment_controller.rb +0 -12
  225. data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +0 -24
  226. data/features/fixtures/rails3/app/app/controllers/unhandled_controller.rb +0 -11
  227. data/features/fixtures/rails3/app/app/controllers/warden_controller.rb +0 -30
  228. data/features/fixtures/rails3/app/app/helpers/application_helper.rb +0 -2
  229. data/features/fixtures/rails3/app/app/mailers/.gitkeep +0 -0
  230. data/features/fixtures/rails3/app/app/models/.gitkeep +0 -0
  231. data/features/fixtures/rails3/app/app/models/user.rb +0 -6
  232. data/features/fixtures/rails3/app/app/views/layouts/application.html.erb +0 -14
  233. data/features/fixtures/rails3/app/config.ru +0 -4
  234. data/features/fixtures/rails3/app/config/application.rb +0 -67
  235. data/features/fixtures/rails3/app/config/boot.rb +0 -6
  236. data/features/fixtures/rails3/app/config/database.yml +0 -31
  237. data/features/fixtures/rails3/app/config/environment.rb +0 -5
  238. data/features/fixtures/rails3/app/config/environments/development.rb +0 -37
  239. data/features/fixtures/rails3/app/config/environments/production.rb +0 -67
  240. data/features/fixtures/rails3/app/config/environments/rails_env.rb +0 -37
  241. data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +0 -29
  242. data/features/fixtures/rails3/app/config/initializers/secret_token.rb +0 -7
  243. data/features/fixtures/rails3/app/config/initializers/session_store.rb +0 -8
  244. data/features/fixtures/rails3/app/config/initializers/warden.rb +0 -3
  245. data/features/fixtures/rails3/app/config/initializers/wrap_parameters.rb +0 -14
  246. data/features/fixtures/rails3/app/config/locales/en.yml +0 -5
  247. data/features/fixtures/rails3/app/config/routes.rb +0 -19
  248. data/features/fixtures/rails3/app/db/migrate/20180423142727_create_users.rb +0 -45
  249. data/features/fixtures/rails3/app/db/schema.rb +0 -37
  250. data/features/fixtures/rails3/app/db/seeds.rb +0 -7
  251. data/features/fixtures/rails3/app/lib/assets/.gitkeep +0 -0
  252. data/features/fixtures/rails3/app/lib/strategies/token_strategy.rb +0 -12
  253. data/features/fixtures/rails3/app/lib/tasks/.gitkeep +0 -0
  254. data/features/fixtures/rails3/app/log/.gitkeep +0 -0
  255. data/features/fixtures/rails3/app/public/404.html +0 -26
  256. data/features/fixtures/rails3/app/public/422.html +0 -26
  257. data/features/fixtures/rails3/app/public/500.html +0 -25
  258. data/features/fixtures/rails3/app/public/favicon.ico +0 -0
  259. data/features/fixtures/rails3/app/public/index.html +0 -241
  260. data/features/fixtures/rails3/app/public/robots.txt +0 -5
  261. data/features/fixtures/rails3/app/script/rails +0 -6
  262. data/features/fixtures/rails4/.dockerignore +0 -1
  263. data/features/fixtures/rails4/Dockerfile +0 -17
  264. data/features/fixtures/rails4/app/.gitignore +0 -16
  265. data/features/fixtures/rails4/app/Gemfile +0 -46
  266. data/features/fixtures/rails4/app/README.rdoc +0 -28
  267. data/features/fixtures/rails4/app/Rakefile +0 -6
  268. data/features/fixtures/rails4/app/app/assets/images/.keep +0 -0
  269. data/features/fixtures/rails4/app/app/assets/javascripts/application.js +0 -16
  270. data/features/fixtures/rails4/app/app/assets/stylesheets/application.css +0 -13
  271. data/features/fixtures/rails4/app/app/controllers/api_key_controller.rb +0 -20
  272. data/features/fixtures/rails4/app/app/controllers/app_type_controller.rb +0 -20
  273. data/features/fixtures/rails4/app/app/controllers/app_version_controller.rb +0 -25
  274. data/features/fixtures/rails4/app/app/controllers/application_controller.rb +0 -7
  275. data/features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb +0 -31
  276. data/features/fixtures/rails4/app/app/controllers/before_notify_controller.rb +0 -44
  277. data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +0 -26
  278. data/features/fixtures/rails4/app/app/controllers/concerns/.keep +0 -0
  279. data/features/fixtures/rails4/app/app/controllers/devise_controller.rb +0 -32
  280. data/features/fixtures/rails4/app/app/controllers/handled_controller.rb +0 -26
  281. data/features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb +0 -23
  282. data/features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb +0 -16
  283. data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +0 -23
  284. data/features/fixtures/rails4/app/app/controllers/project_root_controller.rb +0 -25
  285. data/features/fixtures/rails4/app/app/controllers/release_stage_controller.rb +0 -20
  286. data/features/fixtures/rails4/app/app/controllers/send_code_controller.rb +0 -20
  287. data/features/fixtures/rails4/app/app/controllers/send_environment_controller.rb +0 -12
  288. data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +0 -24
  289. data/features/fixtures/rails4/app/app/controllers/unhandled_controller.rb +0 -11
  290. data/features/fixtures/rails4/app/app/helpers/application_helper.rb +0 -2
  291. data/features/fixtures/rails4/app/app/jobs/application_job.rb +0 -2
  292. data/features/fixtures/rails4/app/app/jobs/notify_job.rb +0 -5
  293. data/features/fixtures/rails4/app/app/mailers/.keep +0 -0
  294. data/features/fixtures/rails4/app/app/models/.keep +0 -0
  295. data/features/fixtures/rails4/app/app/models/concerns/.keep +0 -0
  296. data/features/fixtures/rails4/app/app/models/mongo_model.rb +0 -6
  297. data/features/fixtures/rails4/app/app/models/user.rb +0 -6
  298. data/features/fixtures/rails4/app/app/views/layouts/application.html.erb +0 -14
  299. data/features/fixtures/rails4/app/config.ru +0 -4
  300. data/features/fixtures/rails4/app/config/application.rb +0 -23
  301. data/features/fixtures/rails4/app/config/boot.rb +0 -4
  302. data/features/fixtures/rails4/app/config/database.yml +0 -31
  303. data/features/fixtures/rails4/app/config/environment.rb +0 -5
  304. data/features/fixtures/rails4/app/config/environments/development.rb +0 -31
  305. data/features/fixtures/rails4/app/config/environments/production.rb +0 -81
  306. data/features/fixtures/rails4/app/config/environments/rails_env.rb +0 -30
  307. data/features/fixtures/rails4/app/config/environments/test.rb +0 -31
  308. data/features/fixtures/rails4/app/config/initializers/backtrace_silencers.rb +0 -7
  309. data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +0 -29
  310. data/features/fixtures/rails4/app/config/initializers/devise.rb +0 -283
  311. data/features/fixtures/rails4/app/config/initializers/filter_parameter_logging.rb +0 -5
  312. data/features/fixtures/rails4/app/config/initializers/inflections.rb +0 -16
  313. data/features/fixtures/rails4/app/config/initializers/mime_types.rb +0 -5
  314. data/features/fixtures/rails4/app/config/initializers/secret_token.rb +0 -12
  315. data/features/fixtures/rails4/app/config/initializers/session_store.rb +0 -3
  316. data/features/fixtures/rails4/app/config/initializers/wrap_parameters.rb +0 -14
  317. data/features/fixtures/rails4/app/config/locales/devise.en.yml +0 -64
  318. data/features/fixtures/rails4/app/config/locales/en.yml +0 -23
  319. data/features/fixtures/rails4/app/config/mongoid.yml +0 -22
  320. data/features/fixtures/rails4/app/config/routes.rb +0 -21
  321. data/features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb +0 -47
  322. data/features/fixtures/rails4/app/db/seeds.rb +0 -7
  323. data/features/fixtures/rails4/app/lib/assets/.keep +0 -0
  324. data/features/fixtures/rails4/app/lib/tasks/.keep +0 -0
  325. data/features/fixtures/rails4/app/log/.keep +0 -0
  326. data/features/fixtures/rails4/app/public/404.html +0 -58
  327. data/features/fixtures/rails4/app/public/422.html +0 -58
  328. data/features/fixtures/rails4/app/public/500.html +0 -57
  329. data/features/fixtures/rails4/app/public/favicon.ico +0 -0
  330. data/features/fixtures/rails4/app/public/robots.txt +0 -5
  331. data/features/fixtures/rails4/app/test/controllers/.keep +0 -0
  332. data/features/fixtures/rails4/app/test/fixtures/.keep +0 -0
  333. data/features/fixtures/rails4/app/test/helpers/.keep +0 -0
  334. data/features/fixtures/rails4/app/test/integration/.keep +0 -0
  335. data/features/fixtures/rails4/app/test/mailers/.keep +0 -0
  336. data/features/fixtures/rails4/app/test/models/.keep +0 -0
  337. data/features/fixtures/rails4/app/test/test_helper.rb +0 -15
  338. data/features/fixtures/rails5/.dockerignore +0 -1
  339. data/features/fixtures/rails5/Dockerfile +0 -17
  340. data/features/fixtures/rails5/app/.gitignore +0 -21
  341. data/features/fixtures/rails5/app/Gemfile +0 -52
  342. data/features/fixtures/rails5/app/README.md +0 -24
  343. data/features/fixtures/rails5/app/Rakefile +0 -6
  344. data/features/fixtures/rails5/app/app/assets/config/manifest.js +0 -3
  345. data/features/fixtures/rails5/app/app/assets/images/.keep +0 -0
  346. data/features/fixtures/rails5/app/app/assets/javascripts/application.js +0 -16
  347. data/features/fixtures/rails5/app/app/assets/javascripts/cable.js +0 -13
  348. data/features/fixtures/rails5/app/app/assets/javascripts/channels/.keep +0 -0
  349. data/features/fixtures/rails5/app/app/assets/stylesheets/application.css +0 -15
  350. data/features/fixtures/rails5/app/app/channels/application_cable/channel.rb +0 -4
  351. data/features/fixtures/rails5/app/app/channels/application_cable/connection.rb +0 -4
  352. data/features/fixtures/rails5/app/app/controllers/api_key_controller.rb +0 -16
  353. data/features/fixtures/rails5/app/app/controllers/app_type_controller.rb +0 -16
  354. data/features/fixtures/rails5/app/app/controllers/app_version_controller.rb +0 -21
  355. data/features/fixtures/rails5/app/app/controllers/application_controller.rb +0 -7
  356. data/features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb +0 -27
  357. data/features/fixtures/rails5/app/app/controllers/before_notify_controller.rb +0 -40
  358. data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +0 -24
  359. data/features/fixtures/rails5/app/app/controllers/clearance_controller.rb +0 -33
  360. data/features/fixtures/rails5/app/app/controllers/concerns/.keep +0 -0
  361. data/features/fixtures/rails5/app/app/controllers/handled_controller.rb +0 -22
  362. data/features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb +0 -19
  363. data/features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb +0 -12
  364. data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +0 -22
  365. data/features/fixtures/rails5/app/app/controllers/project_root_controller.rb +0 -21
  366. data/features/fixtures/rails5/app/app/controllers/release_stage_controller.rb +0 -16
  367. data/features/fixtures/rails5/app/app/controllers/send_code_controller.rb +0 -16
  368. data/features/fixtures/rails5/app/app/controllers/send_environment_controller.rb +0 -8
  369. data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +0 -20
  370. data/features/fixtures/rails5/app/app/controllers/unhandled_controller.rb +0 -7
  371. data/features/fixtures/rails5/app/app/helpers/application_helper.rb +0 -2
  372. data/features/fixtures/rails5/app/app/jobs/application_job.rb +0 -2
  373. data/features/fixtures/rails5/app/app/jobs/notify_job.rb +0 -5
  374. data/features/fixtures/rails5/app/app/mailers/application_mailer.rb +0 -4
  375. data/features/fixtures/rails5/app/app/models/application_record.rb +0 -3
  376. data/features/fixtures/rails5/app/app/models/concerns/.keep +0 -0
  377. data/features/fixtures/rails5/app/app/models/mongo_model.rb +0 -6
  378. data/features/fixtures/rails5/app/app/models/user.rb +0 -3
  379. data/features/fixtures/rails5/app/app/views/layouts/application.html.erb +0 -14
  380. data/features/fixtures/rails5/app/app/views/layouts/mailer.html.erb +0 -13
  381. data/features/fixtures/rails5/app/app/views/layouts/mailer.text.erb +0 -1
  382. data/features/fixtures/rails5/app/config.ru +0 -5
  383. data/features/fixtures/rails5/app/config/application.rb +0 -15
  384. data/features/fixtures/rails5/app/config/boot.rb +0 -3
  385. data/features/fixtures/rails5/app/config/cable.yml +0 -9
  386. data/features/fixtures/rails5/app/config/database.yml +0 -29
  387. data/features/fixtures/rails5/app/config/environment.rb +0 -5
  388. data/features/fixtures/rails5/app/config/environments/development.rb +0 -55
  389. data/features/fixtures/rails5/app/config/environments/production.rb +0 -87
  390. data/features/fixtures/rails5/app/config/environments/rails_env.rb +0 -55
  391. data/features/fixtures/rails5/app/config/environments/test.rb +0 -55
  392. data/features/fixtures/rails5/app/config/initializers/assets.rb +0 -11
  393. data/features/fixtures/rails5/app/config/initializers/backtrace_silencers.rb +0 -7
  394. data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +0 -29
  395. data/features/fixtures/rails5/app/config/initializers/clearance.rb +0 -5
  396. data/features/fixtures/rails5/app/config/initializers/cookies_serializer.rb +0 -5
  397. data/features/fixtures/rails5/app/config/initializers/filter_parameter_logging.rb +0 -5
  398. data/features/fixtures/rails5/app/config/initializers/inflections.rb +0 -16
  399. data/features/fixtures/rails5/app/config/initializers/mime_types.rb +0 -4
  400. data/features/fixtures/rails5/app/config/initializers/new_framework_defaults.rb +0 -24
  401. data/features/fixtures/rails5/app/config/initializers/session_store.rb +0 -3
  402. data/features/fixtures/rails5/app/config/initializers/wrap_parameters.rb +0 -14
  403. data/features/fixtures/rails5/app/config/locales/devise.en.yml +0 -64
  404. data/features/fixtures/rails5/app/config/locales/en.yml +0 -23
  405. data/features/fixtures/rails5/app/config/mongoid.yml +0 -23
  406. data/features/fixtures/rails5/app/config/puma.rb +0 -47
  407. data/features/fixtures/rails5/app/config/routes.rb +0 -62
  408. data/features/fixtures/rails5/app/config/secrets.yml +0 -25
  409. data/features/fixtures/rails5/app/config/spring.rb +0 -6
  410. data/features/fixtures/rails5/app/db/migrate/20180426095545_create_users.rb +0 -17
  411. data/features/fixtures/rails5/app/db/schema.rb +0 -29
  412. data/features/fixtures/rails5/app/db/seeds.rb +0 -7
  413. data/features/fixtures/rails5/app/lib/assets/.keep +0 -0
  414. data/features/fixtures/rails5/app/lib/tasks/.keep +0 -0
  415. data/features/fixtures/rails5/app/log/.keep +0 -0
  416. data/features/fixtures/rails5/app/public/404.html +0 -67
  417. data/features/fixtures/rails5/app/public/422.html +0 -67
  418. data/features/fixtures/rails5/app/public/500.html +0 -66
  419. data/features/fixtures/rails5/app/public/apple-touch-icon-precomposed.png +0 -0
  420. data/features/fixtures/rails5/app/public/apple-touch-icon.png +0 -0
  421. data/features/fixtures/rails5/app/public/favicon.ico +0 -0
  422. data/features/fixtures/rails5/app/public/robots.txt +0 -5
  423. data/features/fixtures/rails5/app/test/controllers/.keep +0 -0
  424. data/features/fixtures/rails5/app/test/fixtures/.keep +0 -0
  425. data/features/fixtures/rails5/app/test/fixtures/files/.keep +0 -0
  426. data/features/fixtures/rails5/app/test/helpers/.keep +0 -0
  427. data/features/fixtures/rails5/app/test/integration/.keep +0 -0
  428. data/features/fixtures/rails5/app/test/mailers/.keep +0 -0
  429. data/features/fixtures/rails5/app/test/models/.keep +0 -0
  430. data/features/fixtures/rails5/app/test/test_helper.rb +0 -10
  431. data/features/fixtures/rails5/app/tmp/.keep +0 -0
  432. data/features/fixtures/rails6/.dockerignore +0 -1
  433. data/features/fixtures/rails6/Dockerfile +0 -26
  434. data/features/fixtures/rails6/app/.browserslistrc +0 -1
  435. data/features/fixtures/rails6/app/.gitignore +0 -35
  436. data/features/fixtures/rails6/app/.ruby-version +0 -1
  437. data/features/fixtures/rails6/app/Gemfile +0 -58
  438. data/features/fixtures/rails6/app/README.md +0 -24
  439. data/features/fixtures/rails6/app/Rakefile +0 -6
  440. data/features/fixtures/rails6/app/app/assets/config/manifest.js +0 -2
  441. data/features/fixtures/rails6/app/app/assets/images/.keep +0 -0
  442. data/features/fixtures/rails6/app/app/assets/stylesheets/application.css +0 -15
  443. data/features/fixtures/rails6/app/app/channels/application_cable/channel.rb +0 -4
  444. data/features/fixtures/rails6/app/app/channels/application_cable/connection.rb +0 -4
  445. data/features/fixtures/rails6/app/app/controllers/api_key_controller.rb +0 -16
  446. data/features/fixtures/rails6/app/app/controllers/app_type_controller.rb +0 -16
  447. data/features/fixtures/rails6/app/app/controllers/app_version_controller.rb +0 -21
  448. data/features/fixtures/rails6/app/app/controllers/application_controller.rb +0 -7
  449. data/features/fixtures/rails6/app/app/controllers/auto_notify_controller.rb +0 -27
  450. data/features/fixtures/rails6/app/app/controllers/before_notify_controller.rb +0 -40
  451. data/features/fixtures/rails6/app/app/controllers/breadcrumbs_controller.rb +0 -24
  452. data/features/fixtures/rails6/app/app/controllers/clearance_controller.rb +0 -33
  453. data/features/fixtures/rails6/app/app/controllers/concerns/.keep +0 -0
  454. data/features/fixtures/rails6/app/app/controllers/handled_controller.rb +0 -22
  455. data/features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb +0 -19
  456. data/features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb +0 -12
  457. data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +0 -22
  458. data/features/fixtures/rails6/app/app/controllers/project_root_controller.rb +0 -21
  459. data/features/fixtures/rails6/app/app/controllers/release_stage_controller.rb +0 -16
  460. data/features/fixtures/rails6/app/app/controllers/send_code_controller.rb +0 -16
  461. data/features/fixtures/rails6/app/app/controllers/send_environment_controller.rb +0 -8
  462. data/features/fixtures/rails6/app/app/controllers/session_tracking_controller.rb +0 -20
  463. data/features/fixtures/rails6/app/app/controllers/unhandled_controller.rb +0 -7
  464. data/features/fixtures/rails6/app/app/helpers/application_helper.rb +0 -2
  465. data/features/fixtures/rails6/app/app/javascript/channels/consumer.js +0 -6
  466. data/features/fixtures/rails6/app/app/javascript/channels/index.js +0 -5
  467. data/features/fixtures/rails6/app/app/javascript/packs/application.js +0 -9
  468. data/features/fixtures/rails6/app/app/jobs/application_job.rb +0 -7
  469. data/features/fixtures/rails6/app/app/jobs/notify_job.rb +0 -5
  470. data/features/fixtures/rails6/app/app/mailers/application_mailer.rb +0 -4
  471. data/features/fixtures/rails6/app/app/models/application_record.rb +0 -3
  472. data/features/fixtures/rails6/app/app/models/concerns/.keep +0 -0
  473. data/features/fixtures/rails6/app/app/models/mongo_model.rb +0 -6
  474. data/features/fixtures/rails6/app/app/models/user.rb +0 -3
  475. data/features/fixtures/rails6/app/app/views/layouts/application.html.erb +0 -15
  476. data/features/fixtures/rails6/app/app/views/layouts/mailer.html.erb +0 -13
  477. data/features/fixtures/rails6/app/app/views/layouts/mailer.text.erb +0 -1
  478. data/features/fixtures/rails6/app/babel.config.js +0 -70
  479. data/features/fixtures/rails6/app/config.ru +0 -5
  480. data/features/fixtures/rails6/app/config/application.rb +0 -19
  481. data/features/fixtures/rails6/app/config/boot.rb +0 -4
  482. data/features/fixtures/rails6/app/config/cable.yml +0 -13
  483. data/features/fixtures/rails6/app/config/credentials.yml.enc +0 -1
  484. data/features/fixtures/rails6/app/config/database.yml +0 -29
  485. data/features/fixtures/rails6/app/config/environment.rb +0 -5
  486. data/features/fixtures/rails6/app/config/environments/development.rb +0 -64
  487. data/features/fixtures/rails6/app/config/environments/production.rb +0 -113
  488. data/features/fixtures/rails6/app/config/environments/rails_env.rb +0 -56
  489. data/features/fixtures/rails6/app/config/environments/test.rb +0 -48
  490. data/features/fixtures/rails6/app/config/initializers/application_controller_renderer.rb +0 -8
  491. data/features/fixtures/rails6/app/config/initializers/assets.rb +0 -14
  492. data/features/fixtures/rails6/app/config/initializers/backtrace_silencers.rb +0 -7
  493. data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +0 -29
  494. data/features/fixtures/rails6/app/config/initializers/content_security_policy.rb +0 -27
  495. data/features/fixtures/rails6/app/config/initializers/cookies_serializer.rb +0 -5
  496. data/features/fixtures/rails6/app/config/initializers/filter_parameter_logging.rb +0 -5
  497. data/features/fixtures/rails6/app/config/initializers/inflections.rb +0 -16
  498. data/features/fixtures/rails6/app/config/initializers/mime_types.rb +0 -4
  499. data/features/fixtures/rails6/app/config/initializers/wrap_parameters.rb +0 -14
  500. data/features/fixtures/rails6/app/config/locales/en.yml +0 -33
  501. data/features/fixtures/rails6/app/config/mongoid.yml +0 -23
  502. data/features/fixtures/rails6/app/config/puma.rb +0 -35
  503. data/features/fixtures/rails6/app/config/routes.rb +0 -62
  504. data/features/fixtures/rails6/app/config/secrets.yml +0 -25
  505. data/features/fixtures/rails6/app/config/spring.rb +0 -6
  506. data/features/fixtures/rails6/app/config/storage.yml +0 -34
  507. data/features/fixtures/rails6/app/config/webpack/development.js +0 -5
  508. data/features/fixtures/rails6/app/config/webpack/environment.js +0 -3
  509. data/features/fixtures/rails6/app/config/webpack/production.js +0 -5
  510. data/features/fixtures/rails6/app/config/webpack/rails_env.js +0 -5
  511. data/features/fixtures/rails6/app/config/webpack/test.js +0 -5
  512. data/features/fixtures/rails6/app/config/webpacker.yml +0 -121
  513. data/features/fixtures/rails6/app/db/migrate/20180426095545_create_users.rb +0 -17
  514. data/features/fixtures/rails6/app/db/schema.rb +0 -29
  515. data/features/fixtures/rails6/app/db/seeds.rb +0 -7
  516. data/features/fixtures/rails6/app/lib/assets/.keep +0 -0
  517. data/features/fixtures/rails6/app/lib/tasks/.keep +0 -0
  518. data/features/fixtures/rails6/app/log/.keep +0 -0
  519. data/features/fixtures/rails6/app/package.json +0 -15
  520. data/features/fixtures/rails6/app/postcss.config.js +0 -12
  521. data/features/fixtures/rails6/app/public/404.html +0 -67
  522. data/features/fixtures/rails6/app/public/422.html +0 -67
  523. data/features/fixtures/rails6/app/public/500.html +0 -66
  524. data/features/fixtures/rails6/app/public/apple-touch-icon-precomposed.png +0 -0
  525. data/features/fixtures/rails6/app/public/apple-touch-icon.png +0 -0
  526. data/features/fixtures/rails6/app/public/favicon.ico +0 -0
  527. data/features/fixtures/rails6/app/public/robots.txt +0 -1
  528. data/features/fixtures/rails6/app/storage/.keep +0 -0
  529. data/features/fixtures/rails6/app/test/application_system_test_case.rb +0 -5
  530. data/features/fixtures/rails6/app/test/channels/application_cable/connection_test.rb +0 -11
  531. data/features/fixtures/rails6/app/test/controllers/.keep +0 -0
  532. data/features/fixtures/rails6/app/test/fixtures/.keep +0 -0
  533. data/features/fixtures/rails6/app/test/fixtures/files/.keep +0 -0
  534. data/features/fixtures/rails6/app/test/helpers/.keep +0 -0
  535. data/features/fixtures/rails6/app/test/integration/.keep +0 -0
  536. data/features/fixtures/rails6/app/test/mailers/.keep +0 -0
  537. data/features/fixtures/rails6/app/test/models/.keep +0 -0
  538. data/features/fixtures/rails6/app/test/system/.keep +0 -0
  539. data/features/fixtures/rails6/app/test/test_helper.rb +0 -13
  540. data/features/fixtures/rails6/app/tmp/.keep +0 -0
  541. data/features/fixtures/rails6/app/yarn.lock +0 -6082
  542. data/features/fixtures/resque/.dockerignore +0 -1
  543. data/features/fixtures/resque/Dockerfile +0 -14
  544. data/features/fixtures/resque/Gemfile +0 -6
  545. data/features/fixtures/resque/Rakefile +0 -4
  546. data/features/fixtures/resque/app.rb +0 -12
  547. data/features/fixtures/sidekiq/.dockerignore +0 -2
  548. data/features/fixtures/sidekiq/Dockerfile +0 -17
  549. data/features/fixtures/sidekiq/app/Gemfile +0 -7
  550. data/features/fixtures/sidekiq/app/Rakefile.rb +0 -14
  551. data/features/fixtures/sidekiq/app/app.rb +0 -35
  552. data/features/fixtures/sidekiq/app/initializers/HandledError.rb +0 -3
  553. data/features/fixtures/sidekiq/app/initializers/UnhandledError.rb +0 -3
  554. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_false.json +0 -11
  555. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_true.json +0 -12
  556. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_false.json +0 -11
  557. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_true.json +0 -12
  558. data/features/fixtures/sinatra1/.dockerignore +0 -1
  559. data/features/fixtures/sinatra1/Dockerfile +0 -13
  560. data/features/fixtures/sinatra1/Gemfile +0 -4
  561. data/features/fixtures/sinatra1/app.rb +0 -9
  562. data/features/fixtures/sinatra2/.dockerignore +0 -1
  563. data/features/fixtures/sinatra2/Dockerfile +0 -13
  564. data/features/fixtures/sinatra2/Gemfile +0 -4
  565. data/features/fixtures/sinatra2/app.rb +0 -9
  566. data/features/plain_features/add_tab.feature +0 -55
  567. data/features/plain_features/app_type.feature +0 -8
  568. data/features/plain_features/app_version.feature +0 -8
  569. data/features/plain_features/auto_notify.feature +0 -7
  570. data/features/plain_features/delivery.feature +0 -20
  571. data/features/plain_features/exception_data.feature +0 -50
  572. data/features/plain_features/filters.feature +0 -14
  573. data/features/plain_features/handled_errors.feature +0 -42
  574. data/features/plain_features/ignore_classes.feature +0 -11
  575. data/features/plain_features/ignore_report.feature +0 -14
  576. data/features/plain_features/proxies.feature +0 -25
  577. data/features/plain_features/release_stages.feature +0 -20
  578. data/features/plain_features/report_api_key.feature +0 -16
  579. data/features/plain_features/report_severity.feature +0 -17
  580. data/features/plain_features/report_stack_frames.feature +0 -53
  581. data/features/plain_features/report_user.feature +0 -51
  582. data/features/plain_features/unhandled_errors.feature +0 -33
  583. data/features/rails_features/api_key.feature +0 -15
  584. data/features/rails_features/app_type.feature +0 -24
  585. data/features/rails_features/app_version.feature +0 -26
  586. data/features/rails_features/auto_capture_sessions.feature +0 -34
  587. data/features/rails_features/auto_notify.feature +0 -41
  588. data/features/rails_features/before_notify.feature +0 -44
  589. data/features/rails_features/breadcrumbs.feature +0 -43
  590. data/features/rails_features/handled.feature +0 -42
  591. data/features/rails_features/ignore_classes.feature +0 -14
  592. data/features/rails_features/meta_data_filters.feature +0 -16
  593. data/features/rails_features/mongo_breadcrumbs.feature +0 -26
  594. data/features/rails_features/on_error.feature +0 -29
  595. data/features/rails_features/project_root.feature +0 -35
  596. data/features/rails_features/release_stage.feature +0 -27
  597. data/features/rails_features/send_code.feature +0 -18
  598. data/features/rails_features/send_environment.feature +0 -13
  599. data/features/rails_features/unhandled.feature +0 -16
  600. data/features/rails_features/user_info.feature +0 -52
  601. data/features/sidekiq.feature +0 -30
  602. data/features/steps/ruby_notifier_steps.rb +0 -75
  603. data/features/support/env.rb +0 -23
  604. data/issue_template.md +0 -48
  605. data/spec/breadcrumbs/breadcrumb_spec.rb +0 -93
  606. data/spec/breadcrumbs/validator_spec.rb +0 -176
  607. data/spec/bugsnag_spec.rb +0 -366
  608. data/spec/cleaner_spec.rb +0 -350
  609. data/spec/code_extractor_spec.rb +0 -129
  610. data/spec/configuration_spec.rb +0 -445
  611. data/spec/fixtures/apps/rails-initializer-config/Gemfile +0 -9
  612. data/spec/fixtures/apps/rails-initializer-config/config.ru +0 -16
  613. data/spec/fixtures/apps/rails-initializer-config/config/initializers/bugsnag.rb +0 -3
  614. data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +0 -9
  615. data/spec/fixtures/apps/rails-invalid-initializer-config/config.ru +0 -16
  616. data/spec/fixtures/apps/rails-invalid-initializer-config/config/initializers/bugsnag.rb +0 -3
  617. data/spec/fixtures/apps/rails-no-config/Gemfile +0 -9
  618. data/spec/fixtures/apps/rails-no-config/config.ru +0 -16
  619. data/spec/fixtures/apps/scripts/Gemfile +0 -3
  620. data/spec/fixtures/apps/scripts/configure_invalid_key.rb +0 -5
  621. data/spec/fixtures/apps/scripts/configure_key.rb +0 -5
  622. data/spec/fixtures/apps/scripts/no_config.rb +0 -3
  623. data/spec/fixtures/crashes/end_of_file.rb +0 -9
  624. data/spec/fixtures/crashes/file1.rb +0 -29
  625. data/spec/fixtures/crashes/file2.rb +0 -25
  626. data/spec/fixtures/crashes/file_with_long_lines.rb +0 -7
  627. data/spec/fixtures/crashes/functions.rb +0 -29
  628. data/spec/fixtures/crashes/short_file.rb +0 -3
  629. data/spec/fixtures/crashes/start_of_file.rb +0 -9
  630. data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
  631. data/spec/fixtures/middleware/public_info_setter.rb +0 -11
  632. data/spec/fixtures/tasks/Rakefile +0 -26
  633. data/spec/helper_spec.rb +0 -131
  634. data/spec/integration_spec.rb +0 -107
  635. data/spec/integrations/clearance_user_spec.rb +0 -38
  636. data/spec/integrations/logger_spec.rb +0 -134
  637. data/spec/integrations/mailman_spec.rb +0 -83
  638. data/spec/integrations/mongo_spec.rb +0 -262
  639. data/spec/integrations/que_spec.rb +0 -94
  640. data/spec/integrations/rack_spec.rb +0 -232
  641. data/spec/integrations/rails3_request_spec.rb +0 -67
  642. data/spec/integrations/rake_spec.rb +0 -71
  643. data/spec/integrations/resque_spec.rb +0 -99
  644. data/spec/integrations/shoryuken_spec.rb +0 -70
  645. data/spec/integrations/sidekiq_spec.rb +0 -137
  646. data/spec/integrations/warden_user_spec.rb +0 -41
  647. data/spec/middleware/exception_meta_data_spec.rb +0 -104
  648. data/spec/middleware_spec.rb +0 -254
  649. data/spec/middleware_stack_spec.rb +0 -151
  650. data/spec/on_error_spec.rb +0 -332
  651. data/spec/report_spec.rb +0 -1583
  652. data/spec/session_tracker_spec.rb +0 -156
  653. data/spec/spec_helper.rb +0 -99
  654. data/spec/stacktrace_spec.rb +0 -443
  655. data/spec/utility/circular_buffer_spec.rb +0 -98
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a4f6c896c7046dba3d9db2adfa32e232232e3a7923cb9984321ee3a8b09b6e3
4
- data.tar.gz: f6b27c0b50846c1a3e012bb80bccbe5ad6663257c8de4e300742e7af4b065b3f
3
+ metadata.gz: cfe6701fa69f8d7c3c78476d17d127f921a6f730cdd3b618f92e6f7c2483da74
4
+ data.tar.gz: '0857ab0742b7a33acfa39a60f4ecf9114f20b30293c78ef7bb1d1ba52ddef664'
5
5
  SHA512:
6
- metadata.gz: d51d64bbf0b2cc094742a8a207702e963c33eac9e18f58f2348f3d9e6475a1bd0c43dc44baf139bb976823bfabd8b3ff5bab261ae3dababd46f083b7539602f4
7
- data.tar.gz: 3621690efd266608313b000f7acff6df354380457e9b78e448290573e97dd0b17beb68afa5efff96fdcc7b21b39d2d292fddc38082eae7bece24dd1f2d457f0d
6
+ metadata.gz: 3a917b2fc75798b3bd5e95416ab8c26f013133c84739f9d58df7bbd687de5b736184d11eae1e604944ba85267f214999f4a552e7beef1b271401e8598841a966
7
+ data.tar.gz: abb394a0305a254ce1fda64eba446e49949142f42480e6adf176bf1e62e5cfe6a0280421afbfbefda48bfa3dab31f815891705de4eb1d0d59df2b520575aea93
data/.yardopts ADDED
@@ -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
data/CHANGELOG.md CHANGED
@@ -1,6 +1,78 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## v6.20.0 (29 March 2021)
5
+
6
+ ### Enhancements
7
+
8
+ * Classify `ActionDispatch::Http::MimeNegotiation::InvalidType` as info severity level
9
+ | [#654](https://github.com/bugsnag/bugsnag-ruby/pull/654)
10
+
11
+ ### Fixes
12
+
13
+ * Include `connection_id` in ActiveRecord breadcrumb metadata on new versons of Rails
14
+ | [#655](https://github.com/bugsnag/bugsnag-ruby/pull/655)
15
+ * Avoid crash when Mongo 1.12 or earlier is used
16
+ | [#652](https://github.com/bugsnag/bugsnag-ruby/pull/652)
17
+ | [isabanin](https://github.com/isabanin)
18
+
19
+ ## 6.19.0 (6 January 2021)
20
+
21
+ ### Enhancements
22
+
23
+ * Exception messages will be truncated if they have a length greater than 3,072
24
+ | [#636](https://github.com/bugsnag/bugsnag-ruby/pull/636)
25
+ | [joshuapinter](https://github.com/joshuapinter)
26
+
27
+ * Breadcrumb metadata can now contain any type
28
+ | [#648](https://github.com/bugsnag/bugsnag-ruby/pull/648)
29
+
30
+ ## 6.18.0 (27 October 2020)
31
+
32
+ ### Enhancements
33
+
34
+ * Bugsnag should now report uncaught exceptions inside Bundler's 'friendly errors'
35
+ | [#634](https://github.com/bugsnag/bugsnag-ruby/pull/634)
36
+
37
+ * Improve the display of breadrumbs in the Bugsnag app by including milliseconds in timestamps
38
+ | [#639](https://github.com/bugsnag/bugsnag-ruby/pull/639)
39
+
40
+ ## 6.17.0 (27 August 2020)
41
+
42
+ ### Enhancements
43
+
44
+ * Sidekiq now uses `thread_queue` delivery by default
45
+ | [#626](https://github.com/bugsnag/bugsnag-ruby/pull/626)
46
+
47
+ * Rescue now uses `thread_queue` delivery when `at_exit` hooks are enabled
48
+ | [#629](https://github.com/bugsnag/bugsnag-ruby/pull/629)
49
+
50
+ ## 6.16.0 (12 August 2020)
51
+
52
+ ### Enhancements
53
+
54
+ * Set default Delayed Job error context to job class
55
+ | [#499](https://github.com/bugsnag/bugsnag-ruby/pull/499)
56
+ | [Mike Stewart](https://github.com/mike-stewart)
57
+
58
+ * The `BUGSNAG_RELEASE_STAGE` environment variable can now be used to set the release stage. Previously this was only used in Rails applications
59
+ | [#613](https://github.com/bugsnag/bugsnag-ruby/pull/613)
60
+
61
+ * Add support for runtime versions to Delayed Job, Mailman and Shoryuken integrations
62
+ | [#620](https://github.com/bugsnag/bugsnag-ruby/pull/620)
63
+
64
+ * Reduce the size of the bundled gem
65
+ | [#571](https://github.com/bugsnag/bugsnag-ruby/pull/571)
66
+ | [t-richards](https://github.com/t-richards)
67
+
68
+ * Move serialization of Reports onto the background thread when using the thread_queue delivery method
69
+ | [#623](https://github.com/bugsnag/bugsnag-ruby/pull/623)
70
+
71
+ ## Fixes
72
+
73
+ * The `app_type` configuration option should no longer be overwritten by Bugsnag and integrations should set this more consistently
74
+ | [#619](https://github.com/bugsnag/bugsnag-ruby/pull/619)
75
+
4
76
  ## 6.15.0 (27 July 2020)
5
77
 
6
78
  ### Enhancements
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.15.0
1
+ 6.20.0
data/bugsnag.gemspec CHANGED
@@ -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",
data/lib/bugsnag.rb CHANGED
@@ -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
 
@@ -44,7 +43,10 @@ module Bugsnag
44
43
  ##
45
44
  # Configure the Bugsnag notifier application-wide settings.
46
45
  #
47
- # 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]
48
50
  def configure(validate_api_key=true)
49
51
  yield(configuration) if block_given?
50
52
 
@@ -125,13 +127,17 @@ module Bugsnag
125
127
  end
126
128
 
127
129
  ##
128
- # 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]
129
133
  def register_at_exit
130
134
  return if at_exit_handler_installed?
131
135
  @exit_handler_added = true
132
136
  at_exit do
133
137
  if $!
134
- Bugsnag.notify($!, true) do |report|
138
+ exception = unwrap_bundler_exception($!)
139
+
140
+ Bugsnag.notify(exception, true) do |report|
135
141
  report.severity = 'error'
136
142
  report.severity_reason = {
137
143
  :type => Bugsnag::Report::UNHANDLED_EXCEPTION
@@ -142,14 +148,19 @@ module Bugsnag
142
148
  end
143
149
 
144
150
  ##
145
- # 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]
146
157
  def at_exit_handler_installed?
147
158
  @exit_handler_added ||= false
148
159
  end
149
160
 
150
- # Configuration getters
151
161
  ##
152
162
  # Returns the client's Configuration object, or creates one if not yet created.
163
+ #
153
164
  # @return [Configuration]
154
165
  def configuration
155
166
  @configuration = nil unless defined?(@configuration)
@@ -158,6 +169,8 @@ module Bugsnag
158
169
 
159
170
  ##
160
171
  # Returns the client's SessionTracker object, or creates one if not yet created.
172
+ #
173
+ # @return [SessionTracker]
161
174
  def session_tracker
162
175
  @session_tracker = nil unless defined?(@session_tracker)
163
176
  @session_tracker || LOCK.synchronize { @session_tracker ||= Bugsnag::SessionTracker.new}
@@ -181,7 +194,10 @@ module Bugsnag
181
194
  Bugsnag.configuration.request_data[:before_callbacks] ||= []
182
195
  end
183
196
 
184
- # Attempts to load all integrations through auto-discovery
197
+ ##
198
+ # Attempts to load all integrations through auto-discovery.
199
+ #
200
+ # @return [void]
185
201
  def load_integrations
186
202
  require "bugsnag/integrations/railtie" if defined?(Rails::Railtie)
187
203
  INTEGRATIONS.each do |integration|
@@ -192,7 +208,11 @@ module Bugsnag
192
208
  end
193
209
  end
194
210
 
195
- # Load a specific integration
211
+ ##
212
+ # Load a specific integration.
213
+ #
214
+ # @param integration [Symbol] One of the integrations in {INTEGRATIONS}
215
+ # @return [void]
196
216
  def load_integration(integration)
197
217
  integration = :railtie if integration == :rails
198
218
  if INTEGRATIONS.include?(integration) || integration == :railtie
@@ -209,6 +229,7 @@ module Bugsnag
209
229
  # @param meta_data [Hash] String, Numeric, or Boolean meta data to attach
210
230
  # @param type [String] the breadcrumb type, from Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES
211
231
  # @param auto [Symbol] set to :auto if the breadcrumb is automatically created
232
+ # @return [void]
212
233
  def leave_breadcrumb(name, meta_data={}, type=Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE, auto=:manual)
213
234
  breadcrumb = Bugsnag::Breadcrumbs::Breadcrumb.new(name, type, meta_data, auto)
214
235
  validator = Bugsnag::Breadcrumbs::Validator.new(configuration)
@@ -303,15 +324,25 @@ module Bugsnag
303
324
  def deliver_notification(report)
304
325
  configuration.info("Notifying #{configuration.notify_endpoint} of #{report.exceptions.last[:errorClass]}")
305
326
 
306
- payload = report_to_json(report)
307
- options = {:headers => report.headers}
327
+ options = { headers: report.headers }
308
328
 
309
- Bugsnag::Delivery[configuration.delivery_method].deliver(
310
- configuration.notify_endpoint,
311
- payload,
312
- configuration,
313
- options
314
- )
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
315
346
 
316
347
  leave_breadcrumb(
317
348
  report.summary[:error_class],
@@ -353,13 +384,46 @@ module Bugsnag
353
384
  # encoding errors and redacting metadata according to "meta_data_filters"
354
385
  #
355
386
  # @param report [Report]
356
- # @return string
387
+ # @return [String]
357
388
  def report_to_json(report)
358
389
  cleaned = cleaner.clean_object(report.as_json)
359
390
  trimmed = Bugsnag::Helpers.trim_if_needed(cleaned)
360
391
 
361
392
  ::JSON.dump(trimmed)
362
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
363
427
  end
364
428
  end
365
429
  # rubocop:enable Metrics/ModuleLength
@@ -69,7 +69,7 @@ module Bugsnag::Breadcrumbs
69
69
  :name => @name,
70
70
  :type => @type,
71
71
  :metaData => @meta_data,
72
- :timestamp => @timestamp.iso8601
72
+ :timestamp => @timestamp.iso8601(3)
73
73
  }
74
74
  end
75
75
  end
@@ -15,16 +15,6 @@ module Bugsnag::Breadcrumbs
15
15
  #
16
16
  # @param breadcrumb [Bugsnag::Breadcrumbs::Breadcrumb] the breadcrumb to be validated
17
17
  def validate(breadcrumb)
18
- # Check meta_data hash doesn't contain complex values
19
- breadcrumb.meta_data = breadcrumb.meta_data.select do |k, v|
20
- if valid_meta_data_type?(v)
21
- true
22
- else
23
- @configuration.debug("Breadcrumb #{breadcrumb.name} meta_data #{k}:#{v.class} has been dropped for having an invalid data type")
24
- false
25
- end
26
- end
27
-
28
18
  # Check type is valid, set to manual otherwise
29
19
  unless Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES.include?(breadcrumb.type)
30
20
  @configuration.debug("Invalid type: #{breadcrumb.type} for breadcrumb: #{breadcrumb.name}, defaulting to #{Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE}")
@@ -37,17 +27,5 @@ module Bugsnag::Breadcrumbs
37
27
  @configuration.debug("Automatic breadcrumb of type #{breadcrumb.type} ignored: #{breadcrumb.name}")
38
28
  breadcrumb.ignore!
39
29
  end
40
-
41
- private
42
-
43
- ##
44
- # Tests whether the meta_data types are non-complex objects.
45
- #
46
- # Acceptable types are String, Symbol, Numeric, TrueClass, FalseClass, and nil.
47
- #
48
- # @param value [Object] the object to be type checked
49
- def valid_meta_data_type?(value)
50
- value.nil? || value.is_a?(String) || value.is_a?(Symbol) || value.is_a?(Numeric) || value.is_a?(FalseClass) || value.is_a?(TrueClass)
51
- end
52
30
  end
53
31
  end
@@ -15,65 +15,134 @@ require "bugsnag/breadcrumbs/breadcrumbs"
15
15
 
16
16
  module Bugsnag
17
17
  class Configuration
18
+ # Your Integration API Key
19
+ # @return [String, nil]
18
20
  attr_accessor :api_key
21
+
22
+ # The current stage of the release process, e.g. 'development', production'
23
+ # @return [String, nil]
19
24
  attr_accessor :release_stage
25
+
26
+ # A list of which release stages should cause notifications to be sent
27
+ # @return [Array<String>, nil]
20
28
  attr_accessor :notify_release_stages
29
+
30
+ # Whether notifications should automatically be sent
31
+ # @return [Boolean]
21
32
  attr_accessor :auto_notify
33
+
34
+ # @return [String, nil]
22
35
  attr_accessor :ca_file
36
+
37
+ # Whether to automatically attach the Rack environment to notifications
38
+ # @return [Boolean]
23
39
  attr_accessor :send_environment
40
+
41
+ # Whether code snippets from the exception stacktrace should be sent with notifications
42
+ # @return [Boolean]
24
43
  attr_accessor :send_code
44
+
45
+ # Any stacktrace lines that match this path will be marked as 'in project'
46
+ # @return [String, nil]
25
47
  attr_accessor :project_root
48
+
49
+ # The current version of your application
50
+ # @return [String, nil]
26
51
  attr_accessor :app_version
27
- attr_accessor :app_type
52
+
53
+ # A list of keys that should be filtered out from the report and breadcrumb
54
+ # metadata before sending them to Bugsnag
55
+ # @return [Set<String, Regexp>]
28
56
  attr_accessor :meta_data_filters
57
+
58
+ # The logger to use for Bugsnag log messages
59
+ # @return [Logger]
29
60
  attr_accessor :logger
61
+
62
+ # The middleware stack that will run on every notification
63
+ # @return [MiddlewareStack]
30
64
  attr_accessor :middleware
65
+
66
+ # @api private
67
+ # @return [MiddlewareStack]
31
68
  attr_accessor :internal_middleware
69
+
70
+ # The host address of the HTTP proxy that should be used when making requests
71
+ # @see parse_proxy
72
+ # @return [String, nil]
32
73
  attr_accessor :proxy_host
74
+
75
+ # The port number of the HTTP proxy that should be used when making requests
76
+ # @see parse_proxy
77
+ # @return [Integer, nil]
33
78
  attr_accessor :proxy_port
79
+
80
+ # The user that should be used when making requests via a HTTP proxy
81
+ # @see parse_proxy
82
+ # @return [String, nil]
34
83
  attr_accessor :proxy_user
84
+
85
+ # The password for the user that should be used when making requests via a HTTP proxy
86
+ # @see parse_proxy
87
+ # @return [String, nil]
35
88
  attr_accessor :proxy_password
89
+
90
+ # The HTTP request timeout, defaults to 15 seconds
91
+ # @return [Integer]
36
92
  attr_accessor :timeout
93
+
94
+ # The name or descriptor of the Ruby server host
95
+ # @return [String]
37
96
  attr_accessor :hostname
97
+
98
+ # @api private
99
+ # @return [Hash{String => String}]
38
100
  attr_accessor :runtime_versions
101
+
102
+ # Exception classes that will be discarded and not sent to Bugsnag
103
+ # @return [Set<String, Regexp>]
39
104
  attr_accessor :discard_classes
105
+
106
+ # Whether Bugsnag should automatically record sessions
107
+ # @return [Boolean]
40
108
  attr_accessor :auto_capture_sessions
41
109
 
42
- ##
43
110
  # @deprecated Use {#discard_classes} instead
111
+ # @return [Set<Class, Proc>]
44
112
  attr_accessor :ignore_classes
45
113
 
46
- ##
47
- # @return [String] URL error notifications will be delivered to
114
+ # The URL error notifications will be delivered to
115
+ # @return [String]
48
116
  attr_reader :notify_endpoint
49
117
  alias :endpoint :notify_endpoint
50
118
 
51
- ##
52
- # @return [String] URL session notifications will be delivered to
119
+ # The URL session notifications will be delivered to
120
+ # @return [String]
53
121
  attr_reader :session_endpoint
54
122
 
55
- ##
56
- # @return [Boolean] whether any sessions types will be delivered
123
+ # Whether sessions will be delivered
124
+ # @return [Boolean]
57
125
  attr_reader :enable_sessions
58
126
 
59
- ##
60
- # @return [Array<String>] strings indicating allowable automatic breadcrumb types
127
+ # A list of strings indicating allowable automatic breadcrumb types
128
+ # @see Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES
129
+ # @return [Array<String>]
61
130
  attr_accessor :enabled_automatic_breadcrumb_types
62
131
 
63
- ##
64
- # @return [Array<#call>] callables to be run before a breadcrumb is logged
132
+ # Callables to be run before a breadcrumb is logged
133
+ # @return [Array<#call>]
65
134
  attr_accessor :before_breadcrumb_callbacks
66
135
 
67
- ##
68
- # @return [Integer] the maximum allowable amount of breadcrumbs per thread
136
+ # The maximum allowable amount of breadcrumbs per thread
137
+ # @return [Integer]
69
138
  attr_reader :max_breadcrumbs
70
139
 
71
- ##
72
- # @return [Regexp] matching file paths out of project
140
+ #
141
+ # @return [Regexp]
73
142
  attr_accessor :vendor_path
74
143
 
75
- ##
76
- # @return [Array]
144
+ # @api private
145
+ # @return [Array<String>]
77
146
  attr_reader :scopes_to_filter
78
147
 
79
148
  API_KEY_REGEX = /[0-9a-f]{32}/i
@@ -97,6 +166,7 @@ module Bugsnag
97
166
  # Path to vendored code. Used to mark file paths as out of project.
98
167
  DEFAULT_VENDOR_PATH = %r{^(vendor/|\.bundle/)}
99
168
 
169
+ # @api private
100
170
  DEFAULT_SCOPES_TO_FILTER = ['events.metaData', 'events.breadcrumbs.metaData'].freeze
101
171
 
102
172
  alias :track_sessions :auto_capture_sessions
@@ -116,6 +186,7 @@ module Bugsnag
116
186
  self.runtime_versions["ruby"] = RUBY_VERSION
117
187
  self.runtime_versions["jruby"] = JRUBY_VERSION if defined?(JRUBY_VERSION)
118
188
  self.timeout = 15
189
+ self.release_stage = ENV['BUGSNAG_RELEASE_STAGE']
119
190
  self.notify_release_stages = nil
120
191
  self.auto_capture_sessions = true
121
192
 
@@ -177,6 +248,7 @@ module Bugsnag
177
248
  # Gets the delivery_method that Bugsnag will use to communicate with the
178
249
  # notification endpoint.
179
250
  #
251
+ # @return [Symbol]
180
252
  def delivery_method
181
253
  @delivery_method || @default_delivery_method || :thread_queue
182
254
  end
@@ -185,6 +257,10 @@ module Bugsnag
185
257
  # Sets the delivery_method that Bugsnag will use to communicate with the
186
258
  # notification endpoint.
187
259
  #
260
+ # The default delivery methods are ':thread_queue' and ':synchronous'.
261
+ #
262
+ # @param delivery_method [Symbol]
263
+ # @return [void]
188
264
  def delivery_method=(delivery_method)
189
265
  @delivery_method = delivery_method
190
266
  end
@@ -193,19 +269,75 @@ module Bugsnag
193
269
  # Used to set a new default delivery method that will be used if one is not
194
270
  # set with #delivery_method.
195
271
  #
272
+ # @api private
273
+ #
274
+ # @param delivery_method [Symbol]
275
+ # @return [void]
196
276
  def default_delivery_method=(delivery_method)
197
277
  @default_delivery_method = delivery_method
198
278
  end
199
279
 
280
+ ##
281
+ # Get the type of application executing the current code
282
+ #
283
+ # This is usually used to represent if you are running in a Rails server,
284
+ # Sidekiq job, Rake task etc... Bugsnag will automatically detect most
285
+ # application types for you
286
+ #
287
+ # @return [String, nil]
288
+ def app_type
289
+ @app_type || @detected_app_type
290
+ end
291
+
292
+ ##
293
+ # Set the type of application executing the current code
294
+ #
295
+ # If an app_type is set, this will be used instead of the automatically
296
+ # detected app_type that Bugsnag would otherwise use
297
+ #
298
+ # @param app_type [String]
299
+ # @return [void]
300
+ def app_type=(app_type)
301
+ @app_type = app_type
302
+ end
303
+
304
+ ##
305
+ # Get the detected app_type, which is used when one isn't set explicitly
306
+ #
307
+ # @api private
308
+ #
309
+ # @return [String, nil]
310
+ def detected_app_type
311
+ @detected_app_type
312
+ end
313
+
314
+ ##
315
+ # Set the detected app_type, which is used when one isn't set explicitly
316
+ #
317
+ # This allows Bugsnag's integrations to say 'this is a Rails app' while
318
+ # allowing the user to overwrite this if they wish
319
+ #
320
+ # @api private
321
+ #
322
+ # @param app_type [String]
323
+ # @return [void]
324
+ def detected_app_type=(app_type)
325
+ @detected_app_type = app_type
326
+ end
327
+
200
328
  ##
201
329
  # Indicates whether the notifier should send a notification based on the
202
330
  # configured release stage.
331
+ #
332
+ # @return [Boolean]
203
333
  def should_notify_release_stage?
204
334
  @release_stage.nil? || @notify_release_stages.nil? || @notify_release_stages.include?(@release_stage)
205
335
  end
206
336
 
207
337
  ##
208
338
  # Tests whether the configured API key is valid.
339
+ #
340
+ # @return [Boolean]
209
341
  def valid_api_key?
210
342
  !api_key.nil? && api_key =~ API_KEY_REGEX
211
343
  end
@@ -213,48 +345,68 @@ module Bugsnag
213
345
  ##
214
346
  # Returns the array of data that will be automatically attached to every
215
347
  # error notification.
348
+ #
349
+ # @return [Hash]
216
350
  def request_data
217
351
  Thread.current[THREAD_LOCAL_NAME] ||= {}
218
352
  end
219
353
 
220
354
  ##
221
355
  # Sets an entry in the array of data attached to every error notification.
356
+ #
357
+ # @param key [String, #to_s]
358
+ # @param value [Object]
359
+ # @return [void]
222
360
  def set_request_data(key, value)
223
361
  self.request_data[key] = value
224
362
  end
225
363
 
226
364
  ##
227
365
  # Unsets an entry in the array of data attached to every error notification.
366
+ #
367
+ # @param (see set_request_data)
368
+ # @return [void]
228
369
  def unset_request_data(key, value)
229
370
  self.request_data.delete(key)
230
371
  end
231
372
 
232
373
  ##
233
374
  # Clears the array of data attached to every error notification.
375
+ #
376
+ # @return [void]
234
377
  def clear_request_data
235
378
  Thread.current[THREAD_LOCAL_NAME] = nil
236
379
  end
237
380
 
238
381
  ##
239
382
  # Logs an info level message
383
+ #
384
+ # @param message [String, #to_s] The message to log
240
385
  def info(message)
241
386
  logger.info(PROG_NAME) { message }
242
387
  end
243
388
 
244
389
  ##
245
390
  # Logs a warning level message
391
+ #
392
+ # @param (see info)
246
393
  def warn(message)
247
394
  logger.warn(PROG_NAME) { message }
248
395
  end
249
396
 
250
397
  ##
251
398
  # Logs a debug level message
399
+ #
400
+ # @param (see info)
252
401
  def debug(message)
253
402
  logger.debug(PROG_NAME) { message }
254
403
  end
255
404
 
256
405
  ##
257
406
  # Parses and sets proxy from a uri
407
+ #
408
+ # @param uri [String, #to_s] The URI to parse and extract proxy details from
409
+ # @return [void]
258
410
  def parse_proxy(uri)
259
411
  proxy = URI.parse(uri)
260
412
  self.proxy_host = proxy.host
@@ -266,7 +418,8 @@ module Bugsnag
266
418
  ##
267
419
  # Sets the maximum allowable amount of breadcrumbs
268
420
  #
269
- # @param [Integer] the new maximum breadcrumb limit
421
+ # @param new_max_breadcrumbs [Integer] the new maximum breadcrumb limit
422
+ # @return [void]
270
423
  def max_breadcrumbs=(new_max_breadcrumbs)
271
424
  @max_breadcrumbs = new_max_breadcrumbs
272
425
  breadcrumbs.max_items = new_max_breadcrumbs
@@ -282,9 +435,10 @@ module Bugsnag
282
435
 
283
436
  # Sets the notification endpoint
284
437
  #
285
- # @param new_notify_endpoint [String] The URL to deliver error notifications to
286
- #
287
438
  # @deprecated Use {#set_endpoints} instead
439
+ #
440
+ # @param new_notify_endpoint [String] The URL to deliver error notifications to
441
+ # @return [void]
288
442
  def endpoint=(new_notify_endpoint)
289
443
  warn("The 'endpoint' configuration option is deprecated. The 'set_endpoints' method should be used instead")
290
444
  set_endpoints(new_notify_endpoint, session_endpoint) # Pass the existing session_endpoint through so it doesn't get overwritten
@@ -293,9 +447,10 @@ module Bugsnag
293
447
  ##
294
448
  # Sets the sessions endpoint
295
449
  #
296
- # @param new_session_endpoint [String] The URL to deliver session notifications to
297
- #
298
450
  # @deprecated Use {#set_endpoints} instead
451
+ #
452
+ # @param new_session_endpoint [String] The URL to deliver session notifications to
453
+ # @return [void]
299
454
  def session_endpoint=(new_session_endpoint)
300
455
  warn("The 'session_endpoint' configuration option is deprecated. The 'set_endpoints' method should be used instead")
301
456
  set_endpoints(notify_endpoint, new_session_endpoint) # Pass the existing notify_endpoint through so it doesn't get overwritten
@@ -306,13 +461,16 @@ module Bugsnag
306
461
  #
307
462
  # @param new_notify_endpoint [String] The URL to deliver error notifications to
308
463
  # @param new_session_endpoint [String] The URL to deliver session notifications to
464
+ # @return [void]
309
465
  def set_endpoints(new_notify_endpoint, new_session_endpoint)
310
466
  @notify_endpoint = new_notify_endpoint
311
467
  @session_endpoint = new_session_endpoint
312
468
  end
313
469
 
314
470
  ##
315
- # Disables session tracking and delivery. Cannot be undone
471
+ # Disables session tracking and delivery. Cannot be undone
472
+ #
473
+ # @return [void]
316
474
  def disable_sessions
317
475
  self.auto_capture_sessions = false
318
476
  @enable_sessions = false