airbrake 3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/.gitignore +18 -0
  2. data/.yardopts +3 -0
  3. data/CHANGELOG +441 -0
  4. data/Gemfile +3 -0
  5. data/INSTALL +25 -0
  6. data/MIT-LICENSE +22 -0
  7. data/README.md +431 -0
  8. data/README_FOR_HEROKU_ADDON.md +93 -0
  9. data/Rakefile +188 -0
  10. data/SUPPORTED_RAILS_VERSIONS +14 -0
  11. data/TESTING.md +26 -0
  12. data/airbrake.gemspec +33 -0
  13. data/features/metal.feature +23 -0
  14. data/features/rack.feature +27 -0
  15. data/features/rails.feature +254 -0
  16. data/features/rails_with_js_notifier.feature +78 -0
  17. data/features/rake.feature +23 -0
  18. data/features/sinatra.feature +33 -0
  19. data/features/step_definitions/airbrake_shim.rb.template +15 -0
  20. data/features/step_definitions/file_steps.rb +10 -0
  21. data/features/step_definitions/metal_steps.rb +23 -0
  22. data/features/step_definitions/rack_steps.rb +20 -0
  23. data/features/step_definitions/rails_application_steps.rb +401 -0
  24. data/features/step_definitions/rake_steps.rb +17 -0
  25. data/features/support/airbrake_shim.rb.template +15 -0
  26. data/features/support/env.rb +18 -0
  27. data/features/support/matchers.rb +35 -0
  28. data/features/support/rails.rb +181 -0
  29. data/features/support/rake/Rakefile +57 -0
  30. data/features/support/terminal.rb +103 -0
  31. data/features/user_informer.feature +63 -0
  32. data/generators/airbrake/airbrake_generator.rb +90 -0
  33. data/generators/airbrake/lib/insert_commands.rb +34 -0
  34. data/generators/airbrake/lib/rake_commands.rb +24 -0
  35. data/generators/airbrake/templates/airbrake_tasks.rake +25 -0
  36. data/generators/airbrake/templates/capistrano_hook.rb +6 -0
  37. data/generators/airbrake/templates/initializer.rb +6 -0
  38. data/install.rb +1 -0
  39. data/lib/airbrake.rb +150 -0
  40. data/lib/airbrake/backtrace.rb +100 -0
  41. data/lib/airbrake/capistrano.rb +21 -0
  42. data/lib/airbrake/configuration.rb +247 -0
  43. data/lib/airbrake/notice.rb +348 -0
  44. data/lib/airbrake/rack.rb +42 -0
  45. data/lib/airbrake/rails.rb +41 -0
  46. data/lib/airbrake/rails/action_controller_catcher.rb +30 -0
  47. data/lib/airbrake/rails/controller_methods.rb +68 -0
  48. data/lib/airbrake/rails/error_lookup.rb +33 -0
  49. data/lib/airbrake/rails/javascript_notifier.rb +42 -0
  50. data/lib/airbrake/rails3_tasks.rb +82 -0
  51. data/lib/airbrake/railtie.rb +33 -0
  52. data/lib/airbrake/rake_handler.rb +65 -0
  53. data/lib/airbrake/sender.rb +83 -0
  54. data/lib/airbrake/shared_tasks.rb +30 -0
  55. data/lib/airbrake/tasks.rb +83 -0
  56. data/lib/airbrake/user_informer.rb +25 -0
  57. data/lib/airbrake/version.rb +3 -0
  58. data/lib/airbrake_tasks.rb +50 -0
  59. data/lib/rails/generators/airbrake/airbrake_generator.rb +96 -0
  60. data/lib/templates/javascript_notifier.erb +13 -0
  61. data/lib/templates/rescue.erb +91 -0
  62. data/rails/init.rb +1 -0
  63. data/script/integration_test.rb +38 -0
  64. data/test/airbrake_2_2.xsd +78 -0
  65. data/test/airbrake_tasks_test.rb +163 -0
  66. data/test/backtrace_test.rb +163 -0
  67. data/test/catcher_test.rb +333 -0
  68. data/test/configuration_test.rb +216 -0
  69. data/test/helper.rb +251 -0
  70. data/test/javascript_notifier_test.rb +52 -0
  71. data/test/logger_test.rb +85 -0
  72. data/test/notice_test.rb +459 -0
  73. data/test/notifier_test.rb +235 -0
  74. data/test/rack_test.rb +58 -0
  75. data/test/rails_initializer_test.rb +36 -0
  76. data/test/recursion_test.rb +10 -0
  77. data/test/sender_test.rb +193 -0
  78. data/test/user_informer_test.rb +29 -0
  79. metadata +365 -0
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ log/*
2
+ tmp
3
+ db/schema.rb
4
+ db/*.sqlite3
5
+ public/system
6
+ *.swp
7
+ *.DS_Store
8
+ coverage/*
9
+ rdoc/
10
+ tags
11
+ .yardoc
12
+ doc
13
+ pkg
14
+
15
+ Gemfile.lock
16
+ .bundle
17
+
18
+ *.rbc
data/.yardopts ADDED
@@ -0,0 +1,3 @@
1
+ -
2
+ TESTING.rdoc
3
+ MIT-LICENSE
data/CHANGELOG ADDED
@@ -0,0 +1,441 @@
1
+ Version 3.0.rc1 - Fri Aug 19 08:51:53 -0400 2011
2
+ ===============================================================================
3
+
4
+ Jonathan Yurek and Harold Gimenez
5
+ Rename to Airbrake
6
+
7
+ Version 2.4.9 - Wed Mar 30 09:04:53 -0400 2011
8
+ ===============================================================================
9
+
10
+ Jonathan Yurek(1):
11
+ The User Informer should adhere to only the Rack spec.
12
+
13
+ Version 2.4.8 - Mon Mar 21 11:11:16 -0400 2011
14
+ ===============================================================================
15
+
16
+ Jonathan Yurek(1):
17
+ Prevent infinite loops from recursive data structures.
18
+
19
+ Version 2.4.7 - Thu Mar 10 16:21:31 -0500 2011
20
+ ===============================================================================
21
+
22
+ Jonathan Yurek(1):
23
+ Rails generator requires './config/boot' for 1.9.2 compatibility.
24
+
25
+ Version 2.4.6 - Tue Feb 15 15:51:17 -0500 2011
26
+ ===============================================================================
27
+
28
+ Jonathan Yurek(1):
29
+ Modify the error page's body in-place.
30
+
31
+ Version 2.4.5 - Wed Feb 02 13:24:29 -0500 2011
32
+ ===============================================================================
33
+
34
+ Jonathan Yurek (1):
35
+ Don't require Rack::Lock's presence in the middleware for UserInformer
36
+
37
+
38
+ Version 2.4.4 - Fri Jan 28 13:50:10 -0500 2011
39
+ ===============================================================================
40
+
41
+ Matt Jankowski (1):
42
+ Change the javascript notifier from a config option to a helper method
43
+
44
+ Jonathan Yurek (1):
45
+ Show the javascript notifier prevents XSS attempts from request.url
46
+
47
+ Version 2.4.3 - Wed Jan 26 11:35:15 -0500 2011
48
+ ===============================================================================
49
+
50
+ Jon Yurek (1):
51
+ Allow the application to present the Hoptoad error number to the user
52
+
53
+
54
+ Version 2.4.2 - Sun Jan 09 09:37:31 -0500 2011
55
+ ===============================================================================
56
+
57
+ Matt Jankowski (1):
58
+ fix issue where the gsub to replace the html head with javascript was removing the head element entirely
59
+
60
+
61
+ Version 2.4.1 - Sat Jan 08 12:17:15 -0500 2011
62
+ ===============================================================================
63
+
64
+ Matt Jankowski (1):
65
+ restore method which may have been accidentally removed?
66
+
67
+
68
+ Version 2.4.0 - Thu Jan 06 15:03:58 -0500 2011
69
+ ===============================================================================
70
+
71
+ Jason Morrison (1):
72
+ Remove official support for very old Rails version going forward
73
+
74
+ Version 2.3.14 - Wed Jan 05 14:06:12 -0500 2011
75
+ ===============================================================================
76
+
77
+ Jason Morrison (1):
78
+ Fix 'require' path
79
+
80
+ Version 2.3.13 - Mon Jan 03 15:56:20 -0500 2011
81
+ ===============================================================================
82
+
83
+ Dan Croak (1):
84
+ including twiddle wakka in install instructions
85
+
86
+ Emma Lindsay (5):
87
+ Sends more javascript information back to hoptaod
88
+ Merge branch 'js_notifier_default_fields'
89
+ Bumping to version 2.3.10
90
+ Updated jferris-mocha to bourne
91
+ Update readme to show quotes around error names in ignores
92
+
93
+ Jason Morrison (8):
94
+ wip: Supply default url, component, action for JS notifier
95
+ gracefully fall back to require 'activesupport' if require 'active_support' fails
96
+ Add non-capistrano deploy instructions
97
+ Add instructions for heroku gem to Heroku addon README
98
+ Add AbstractController::ActionNotFound to default ignore list
99
+ Bumping to version 2.3.12
100
+ Bugfix: JS Notifier will now insert itself even when <head> tag has attributes
101
+ Add Heroku deploy notification
102
+
103
+ Jon Yurek (11):
104
+ Require bourne, run right cucumber task
105
+ Get the API key from Heroku
106
+ Bumped version: 2.3.11
107
+ Getting green cucumber stories
108
+ Fakes out the heroku command for cucumber.
109
+ Mount the metal endpoint in Rails 3 tests.
110
+ Metal test mounts at /metal
111
+ Supported versions: 2.3.9, 2.3.10, and 3.0.1
112
+ Return non-zero on cucumber failure.
113
+ Controller info for older Rails-es is different.
114
+ Remove Rails 2.0.2 from official support. Added 3.0.2+3
115
+
116
+ Trevor Turk (1):
117
+ Fix default ignores in the README
118
+
119
+
120
+ Version 2.3.12 - Wed Nov 03 13:53:18 -0400 2010
121
+ ===============================================================================
122
+
123
+ In general: Update gems, improve testing, improve documentation, improve
124
+ javascript notifier.
125
+
126
+ Emma Lindsay (4):
127
+ Sends more javascript information back to hoptaod
128
+ Merge branch 'js_notifier_default_fields'
129
+ Bumping to version 2.3.10
130
+ Updated jferris-mocha to bourne
131
+
132
+ Jason Morrison (5):
133
+ wip: Supply default url, component, action for JS notifier
134
+ gracefully fall back to require 'activesupport' if require 'active_support' fails
135
+ Add non-capistrano deploy instructions
136
+ Add instructions for heroku gem to Heroku addon README
137
+ Add AbstractController::ActionNotFound to default ignore list
138
+
139
+ Jon Yurek (9):
140
+ Require bourne, run right cucumber task
141
+ Get the API key from Heroku
142
+ Bumped version: 2.3.11
143
+ Getting green cucumber stories
144
+ Fakes out the heroku command for cucumber.
145
+ Mount the metal endpoint in Rails 3 tests.
146
+ Metal test mounts at /metal
147
+ Supported versions: 2.3.9, 2.3.10, and 3.0.1
148
+ Return non-zero on cucumber failure.
149
+
150
+
151
+ Version 2.3.10 - Mon Oct 18 17:07:56 -0400 2010
152
+ ===============================================================================
153
+
154
+ Emma Lindsay (2):
155
+ Sends more javascript information back to hoptaod
156
+ Merge branch 'js_notifier_default_fields'
157
+
158
+ Jason Morrison (2):
159
+ wip: Supply default url, component, action for JS notifier
160
+ gracefully fall back to require 'activesupport' if require 'active_support' fails
161
+
162
+
163
+ Version 2.3.9 - 2010-10-18
164
+ ===============================================================================
165
+
166
+ This patch release contains a handful of bugfixes, and ensures:
167
+ If hoptoadapp.com is completely unreachable by HTTP, your app is not affected.
168
+ Controller method #notify_hoptoad is available in Rails 3. Thanks contributor Kyle Crum!
169
+
170
+ Chad Pytel (1):
171
+ also handle Errno::ECONNREFUSED and other http errors
172
+
173
+ Jason Morrison (4):
174
+ Add gem versions to test suite
175
+ Revert "Revert "attempt to debug mail sending on staging""
176
+ Adding Heroku notifier readme
177
+ gracefully fall back to require 'activesupport' if require 'active_support' fails
178
+
179
+ Jon Yurek (2):
180
+ Bumping version to 2.3.8
181
+ Adds builder to the gemspec
182
+
183
+ Kyle Crum (3):
184
+ notify_hoptoad now works in rails 3 controllers
185
+ more sane way of testing for rails 3 controller methods
186
+ added a scenario for using the notify_hoptoad method within a controller
187
+
188
+
189
+ Version 2.3.7 - 2010-09-15
190
+ ===============================================================================
191
+
192
+ Jason Morrison (5):
193
+ Add ./ prefix to require for 1.9.2
194
+ More helpful message for testing without ENV['RAILS_VERSION']
195
+ Support Rails 3.0.0, not 3.0.0.rc
196
+ This wasn't actually a fix (it regressed tests): Revert "Fix modifying params_filters"
197
+ Correct the #also_use_rack_params_filters method
198
+
199
+ Joshua Clayton (1):
200
+ Fix modifying params_filters
201
+
202
+ Nick Quaranto (2):
203
+ s/RSpec/Spec for matchers
204
+ use Sinatra::Default instead of Sinatra::Base
205
+
206
+
207
+ Version 2.3.6 - 2010-08-30
208
+ ===============================================================================
209
+
210
+ Daniel Barron (1):
211
+ Initializer configuration overrides Railtie configuration if set
212
+
213
+ Joshua Clayton (1):
214
+ Remove rack.request.form_vars
215
+
216
+ Tristan Dunn (1):
217
+ Move Rails JS scenarios into separate feature and correctly support HTTPS when secure is enabled on the notifier.
218
+
219
+
220
+ Version 2.3.5 - 2010-08-13
221
+ ===============================================================================
222
+
223
+ Alexey Palazhchenko (1):
224
+ Actually call #to_hash.
225
+
226
+ Joshua Clayton (1):
227
+ Trace hoptoad:test task when running generator for anything before Rails3
228
+
229
+
230
+ Version 2.3.4 - 2010-08-10
231
+ ===============================================================================
232
+
233
+ Tristan Dunn (1):
234
+ Only include the JS notifier in public environments.
235
+
236
+
237
+ Version 2.3.3 - 2010-08-04
238
+ ===============================================================================
239
+
240
+ Tristan Dunn (1):
241
+ Initial injection of JS notifier.
242
+
243
+
244
+ Version 2.3.2 - 2010-07-06
245
+ ===============================================================================
246
+
247
+ Josh Clayton(1):
248
+ Handle instances when Rack's action_dispach.parameter_filter is nil
249
+
250
+
251
+ Version 2.3.1 - 2010-07-02
252
+ ===============================================================================
253
+
254
+ Jason Morrison (2):
255
+ Use the Rails 3 params filters when available
256
+ Filter session hash using Hoptoad config.params_filters, in addition to params
257
+
258
+
259
+ Version 2.3.0 - 2010-06-24
260
+ ===============================================================================
261
+
262
+ Jason Morrison (5):
263
+ Add integration test for rails 3.0.0.beta4
264
+ Added feature: Support the Heroku addon in the generator
265
+ Add --heroku flag to generator to support ENV['HOPTOAD_API_KEY']
266
+ Reflect a copy change in rails.feature for --heroku generator flag
267
+ Support the proxy configuration options when notifying Hoptoad of a deploy (hat tip @gudleik)
268
+
269
+
270
+ Version 2.2.6 - 2010-06-02
271
+ ===============================================================================
272
+
273
+ Jason Morrison (1):
274
+ For Rails 3, just use the Rack middleware instead of specifying a location to insert_after
275
+
276
+
277
+ Version 2.2.5 - 2010-06-02
278
+ ===============================================================================
279
+
280
+ Jason Morrison (1):
281
+ Add documentation for Rails 3.x installation
282
+
283
+
284
+ Version 2.2.4 - 2010-06-02
285
+ ===============================================================================
286
+
287
+ Jason Morrison (1):
288
+ Add a note to README about removing the explicit Catcher #include in ApplicationController
289
+
290
+
291
+ Version 2.2.3 - 2010-06-02
292
+ ===============================================================================
293
+
294
+ Summary: Fixed a variety of issues for Rails 3.0.0.beta3,
295
+ Fixed a bug when using Vlad to deploy instead of Capistrano
296
+ Give better error output when gem is not installed
297
+
298
+ Chad Pytel (2):
299
+ revise gem unpack instructions step
300
+ Merge branch 'master' of github.com:thoughtbot/hoptoad_notifier
301
+
302
+ Dan Lawless (1):
303
+ don't append capistrano details to config.deploy.rb when target app uses Vlad
304
+
305
+ Jason Morrison (7):
306
+ LH-556 Clarify sending ENV environment variables
307
+ Starting to add features for Rails 3
308
+ Make rails rake tasks depend on gem-making tasks
309
+ Start to get Rails 3 features to pass
310
+ require fileutils to reflect rubygems 1.3.6 change
311
+ Support ENV['CUCUMBER_FORMAT'] in rails cucumber tasks for testing
312
+ Fix the initializer syntax in the Rails 3 Railtie
313
+
314
+ Joe Ferris (11):
315
+ Got the generator running and a request dispatched to the test endpoint
316
+ Fixed logging in hoptoad:test rake task
317
+ Separated Rails 2 and 3 entry
318
+ Support bundler
319
+ Rails 3 generator works with an existing api key
320
+ Extract request info from rack env
321
+ Detect presence of the plugin
322
+ Added a capistrano hook for Rails 3
323
+ Fixed rack/sinatra being broken without active_support
324
+ Fixes for earlier versions of Rails
325
+ Fixed Rails 3 generator not to append cap hooks for vlad deploys
326
+
327
+ Josh Kalderimis (7):
328
+ updated railtie to work with the new rails 3 middleware api
329
+ railtie_name is deprecated
330
+ updated app_middleware call to use string version as to make sure constant is loaded
331
+ moved generator using the new rails 3 convention
332
+ update path to template for Rails 3 generator
333
+ correction to referencing of the rails application in rails3_tasks
334
+ add environment_name and project_root back to rails 3 railtie
335
+
336
+ Joshua Nichols (1):
337
+ Handle gem not being installed more gracefully.
338
+
339
+
340
+ Version 2.2.2 - 2010-03-10
341
+ ===============================================================================
342
+
343
+ Chad Pytel (1):
344
+ document proxy support
345
+
346
+ Joe Ferris (8):
347
+ Added upgrade instructions to the README
348
+ Give a clearer error message when generating a Rails app fails
349
+ Fail loudly when a gem can't be vendored
350
+ Debugging rubygems issues
351
+ Explicitly specify the gem paths
352
+ Less noisy
353
+ Restore gem path after vendoring
354
+ Fixed a typo
355
+
356
+ Jon Yurek (1):
357
+ Added notice about removing hoptoad rake tasks to upgrade gem
358
+
359
+ Mike Burns (1):
360
+ Remove stray file with notes in it
361
+
362
+
363
+ Version 2.2.1 - 2010-03-10
364
+ ===============================================================================
365
+
366
+ Jason Morrison (3):
367
+ LH-629 Ensure notifier is not considered a framework gem
368
+ Removing things-the-generator-must-do file
369
+ Add rake cucumber:wip:rails* tasks for work-in-progress features
370
+
371
+
372
+ Version 2.2.0 - 2010-02-18
373
+ ===============================================================================
374
+
375
+ Bumping the version from 2.1.4 to 2.2.0 since adding Rack support warrants a minor version.
376
+
377
+ Jason Morrison (1):
378
+ Stringify array elements when making assertions about Notice XML for 1.9 compatibility
379
+
380
+
381
+ Version 2.1.4 - 2010-02-12
382
+ ===============================================================================
383
+
384
+ Chad Pytel (2):
385
+ add more info to README for 1.2.6
386
+ fix gem unpack line for 1.2.6
387
+
388
+ Jason Morrison (2):
389
+ Adding additional instructions for Rails 1.2.6
390
+ Typesetting in README.rdoc
391
+
392
+ Joe Ferris (11):
393
+ Separating Rails functionality out more
394
+ Initial Rack middleware
395
+ Extract request info from rack env
396
+ Added integration tests for rescuing
397
+ Fixed reporting of Rails version
398
+ Small refactoring
399
+ Automatically add Rack middleware for Rails apps that support it (catches exceptions from Metal)
400
+ Added an integration test and docs for rack apps
401
+ Added integration/readme coverage of Sinatra apps
402
+ Added docs to HoptoadNotifier::Rack
403
+ Require rack in tests for older versions of Rails; use active_support instead of activesupport
404
+
405
+ Nick Quaranto (3):
406
+ Fixing the capistrano hook bit in the readme
407
+ Adding changeling:minor and changeling:patch to automate notifier releases
408
+ Adding rake changeling:push
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+