taskrabbit 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. data/.gitignore +6 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +22 -0
  4. data/Guardfile +8 -0
  5. data/README.md +132 -0
  6. data/Rakefile +53 -0
  7. data/lib/taskrabbit.rb +21 -0
  8. data/lib/taskrabbit/account.rb +7 -0
  9. data/lib/taskrabbit/api.rb +47 -0
  10. data/lib/taskrabbit/association.rb +52 -0
  11. data/lib/taskrabbit/city.rb +19 -0
  12. data/lib/taskrabbit/client.rb +47 -0
  13. data/lib/taskrabbit/collection.rb +17 -0
  14. data/lib/taskrabbit/config.rb +43 -0
  15. data/lib/taskrabbit/error.rb +10 -0
  16. data/lib/taskrabbit/location.rb +19 -0
  17. data/lib/taskrabbit/proxy.rb +62 -0
  18. data/lib/taskrabbit/smash.rb +82 -0
  19. data/lib/taskrabbit/task.rb +54 -0
  20. data/lib/taskrabbit/transformer.rb +5 -0
  21. data/lib/taskrabbit/user.rb +26 -0
  22. data/lib/taskrabbit/version.rb +3 -0
  23. data/spec/spec_helper.rb +33 -0
  24. data/spec/support/cassettes/account/no_user.yml +30 -0
  25. data/spec/support/cassettes/account/properties.yml +32 -0
  26. data/spec/support/cassettes/account/tasks.yml +63 -0
  27. data/spec/support/cassettes/account/with_user.yml +32 -0
  28. data/spec/support/cassettes/cities/all.yml +32 -0
  29. data/spec/support/cassettes/cities/find.yml +32 -0
  30. data/spec/support/cassettes/cities/properties.yml +32 -0
  31. data/spec/support/cassettes/errors/404.yml +362 -0
  32. data/spec/support/cassettes/locations/properties.yml +63 -0
  33. data/spec/support/cassettes/tasks/all.yml +32 -0
  34. data/spec/support/cassettes/tasks/create/default.yml +30 -0
  35. data/spec/support/cassettes/tasks/create/using_account.yml +30 -0
  36. data/spec/support/cassettes/tasks/create/with_location.yml +32 -0
  37. data/spec/support/cassettes/tasks/create/without_credit_card.yml +30 -0
  38. data/spec/support/cassettes/tasks/create/without_user.yml +30 -0
  39. data/spec/support/cassettes/tasks/delete.yml +63 -0
  40. data/spec/support/cassettes/tasks/find.yml +32 -0
  41. data/spec/support/cassettes/tasks/properties.yml +32 -0
  42. data/spec/support/cassettes/tasks/save.yml +63 -0
  43. data/spec/support/cassettes/tasks/update.yml +63 -0
  44. data/spec/support/cassettes/tasks/without_client.yml +30 -0
  45. data/spec/support/cassettes/users/find.yml +32 -0
  46. data/spec/support/cassettes/users/properties.yml +32 -0
  47. data/spec/support/cassettes/users/tasks/all.yml +32 -0
  48. data/spec/taskrabbit/account_spec.rb +65 -0
  49. data/spec/taskrabbit/api_spec.rb +34 -0
  50. data/spec/taskrabbit/city_spec.rb +61 -0
  51. data/spec/taskrabbit/collection_spec.rb +17 -0
  52. data/spec/taskrabbit/error_spec.rb +13 -0
  53. data/spec/taskrabbit/location_spec.rb +26 -0
  54. data/spec/taskrabbit/proxy_spec.rb +23 -0
  55. data/spec/taskrabbit/smash_spec.rb +129 -0
  56. data/spec/taskrabbit/task_spec.rb +235 -0
  57. data/spec/taskrabbit/taskrabbit_spec.rb +31 -0
  58. data/spec/taskrabbit/user_spec.rb +70 -0
  59. data/taskrabbit.gemspec +26 -0
  60. metadata +194 -0
@@ -0,0 +1,32 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://localhost:3000/api/v1/account?
6
+ body:
7
+ headers:
8
+ x-client-application:
9
+ - euqmQpzV04GmN1dJTY639PdI7eiSjCjI3lKTkPWn
10
+ authorization:
11
+ - OAuth RhyRtRg1bRNyqmdozkY6JJJ3eGDpoRGTm9AXUudp
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ etag:
18
+ - "\"1e7456943686e7860596b08fd8493a2b\""
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ x-runtime:
22
+ - "4035"
23
+ server:
24
+ - WEBrick/1.3.1 (Ruby/1.8.7/2011-02-18)
25
+ date:
26
+ - Sat, 17 Mar 2012 23:12:15 GMT
27
+ content-length:
28
+ - "2956"
29
+ cache-control:
30
+ - private, max-age=0, must-revalidate
31
+ body: "{\"city\":{\"name\":\"SF Bay Area\",\"lng\":-122.419416,\"id\":3,\"links\":{\"get\":\"/api/v1/cities/3\"},\"lat\":37.77493},\"zip_code\":\"64321\",\"id\":49720,\"tasks\":{\"items\":[{\"name\":\"My First Task\",\"city\":{\"name\":\"New York City\",\"lng\":-74.005973,\"id\":4,\"links\":{\"get\":\"/api/v1/cities/4\"},\"lat\":40.714353},\"charge_price\":20,\"private_runner\":false,\"named_price\":20,\"complete_by_time\":1332093600,\"id\":22673,\"state_changed_at\":1332025380,\"cost_in_cents\":0,\"links\":{\"html\":\"http://local.taskrabbit.com/tasks/my-first-task--47\",\"get\":\"/api/v1/tasks/22673\",\"delete\":\"/api/v1/tasks/22673\",\"put\":\"/api/v1/tasks/22673\",\"authenticated\":\"http://local.taskrabbit.com/go/2f249e87a04016d741f163fe991468737e367c8e334eb5d5a53a63d741ce0019ba1a9c33366a76cadc06bdcb9259c5549a44\"},\"runners\":{\"items\":[]},\"state_label\":\"posted\",\"assign_by_time\":1332082800,\"state\":\"opened\"},{\"name\":\"New Name\",\"city\":{\"name\":\"New York City\",\"lng\":-74.005973,\"id\":4,\"links\":{\"get\":\"/api/v1/cities/4\"},\"lat\":40.714353},\"charge_price\":20,\"private_runner\":false,\"named_price\":20,\"complete_by_time\":1332093600,\"id\":22674,\"state_changed_at\":1332025387,\"cost_in_cents\":0,\"links\":{\"html\":\"http://local.taskrabbit.com/tasks/new-name--3\",\"get\":\"/api/v1/tasks/22674\",\"delete\":\"/api/v1/tasks/22674\",\"put\":\"/api/v1/tasks/22674\",\"authenticated\":\"http://local.taskrabbit.com/go/459b5e05e7a6542891148717ed9cdd4a25fb5d5f71f094c098a93beb25ba26303c4ea5e2c8e01da3743703abbe1da5b46980\"},\"runners\":{\"items\":[]},\"state_label\":\"posted\",\"assign_by_time\":1332082800,\"state\":\"opened\"},{\"name\":\"My First Task\",\"city\":{\"name\":\"New York City\",\"lng\":-74.005973,\"id\":4,\"links\":{\"get\":\"/api/v1/cities/4\"},\"lat\":40.714353},\"charge_price\":20,\"private_runner\":false,\"named_price\":20,\"complete_by_time\":1332093600,\"id\":22675,\"state_changed_at\":1332025394,\"cost_in_cents\":0,\"links\":{\"html\":\"http://local.taskrabbit.com/tasks/my-first-task--49\",\"get\":\"/api/v1/tasks/22675\",\"delete\":\"/api/v1/tasks/22675\",\"put\":\"/api/v1/tasks/22675\",\"authenticated\":\"http://local.taskrabbit.com/go/a89862d84f6a3b8b3175c46bc824ba3c4086519395730898237d56ef90ad672e540e62370c6a87b6c6ec2f601c10e2486ba7\"},\"runners\":{\"items\":[]},\"state_label\":\"posted\",\"assign_by_time\":1332082800,\"state\":\"opened\"}],\"links\":{\"get\":\"/api/v1/users/49720/tasks\",\"last\":\"/api/v1/users/49720/tasks?page=1\",\"first\":\"/api/v1/users/49720/tasks?page=1\"}},\"short_name\":\"Bob\",\"full_name\":\"Bob Sponge\",\"last_name\":\"Sponge\",\"links\":{\"get\":\"/api/v1/users/49720\",\"avatar_url\":\"http://local.taskrabbit.com/images/default_avatars/poster_thumb.png\"},\"display_name\":\"Bob S.\",\"locations\":{\"items\":[{\"name\":\"Home\",\"city\":\"San Francisco\",\"approximate_radius\":0,\"address\":\"432 example\",\"zip\":\"94123\",\"partial\":\"example, San Francisco, Ca 94123\",\"id\":37439,\"lng\":2.108266,\"complete\":\"432 example, San Francisco, Ca 94123\",\"lat\":41.5512199,\"state\":\"Ca\"}],\"links\":{\"get\":\"/api/v1/users/49720/locations\"}},\"email\":\"bobsponge@example.com\",\"first_name\":\"Bob\",\"counts\":{\"posted_tasks\":30,\"active_tasks\":3,\"ongoing_tasks\":3}}"
32
+ http_version: "1.1"
@@ -0,0 +1,32 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://localhost:3000/api/v1/cities?
6
+ body:
7
+ headers:
8
+ x-client-application:
9
+ - euqmQpzV04GmN1dJTY639PdI7eiSjCjI3lKTkPWn
10
+ authorization:
11
+ - OAuth
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ etag:
18
+ - "\"de44839b9a71c6cedbe6c84a149356c4\""
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ x-runtime:
22
+ - "100"
23
+ server:
24
+ - WEBrick/1.3.1 (Ruby/1.8.7/2011-02-18)
25
+ date:
26
+ - Sat, 17 Mar 2012 23:12:26 GMT
27
+ content-length:
28
+ - "1064"
29
+ cache-control:
30
+ - private, max-age=0, must-revalidate
31
+ body: "{\"items\":[{\"name\":\"Boston\",\"lng\":-71.059773,\"id\":1,\"links\":{\"get\":\"/api/v1/cities/1\"},\"lat\":42.358431},{\"name\":\"SF Bay Area\",\"lng\":-122.419416,\"id\":3,\"links\":{\"get\":\"/api/v1/cities/3\"},\"lat\":37.77493},{\"name\":\"New York City\",\"lng\":-74.005973,\"id\":4,\"links\":{\"get\":\"/api/v1/cities/4\"},\"lat\":40.714353},{\"name\":\"Chicago\",\"lng\":-87.629798,\"id\":5,\"links\":{\"get\":\"/api/v1/cities/5\"},\"lat\":41.878114},{\"name\":\"LA & OC\",\"lng\":-118.0946829248,\"id\":6,\"links\":{\"get\":\"/api/v1/cities/6\"},\"lat\":33.8859512167},{\"name\":\"Austin\",\"lng\":-97.743061,\"id\":8,\"links\":{\"get\":\"/api/v1/cities/8\"},\"lat\":30.267153},{\"name\":\"Portland\",\"lng\":-122.676207,\"id\":10,\"links\":{\"get\":\"/api/v1/cities/10\"},\"lat\":45.523452},{\"name\":\"Seattle\",\"lng\":-122.332071,\"id\":11,\"links\":{\"get\":\"/api/v1/cities/11\"},\"lat\":47.60621},{\"name\":\"San Antonio\",\"lng\":-98.4936282,\"id\":148,\"links\":{\"get\":\"/api/v1/cities/148\"},\"lat\":29.4241219},{\"name\":\"Virtual (Anywhere)\",\"id\":9999,\"links\":{\"get\":\"/api/v1/cities/9999\"}}],\"links\":{\"get\":\"/api/v1/cities\",\"last\":\"/api/v1/cities?page=1\",\"first\":\"/api/v1/cities?page=1\"}}"
32
+ http_version: "1.1"
@@ -0,0 +1,32 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://localhost:3000/api/v1/cities/3?
6
+ body:
7
+ headers:
8
+ x-client-application:
9
+ - euqmQpzV04GmN1dJTY639PdI7eiSjCjI3lKTkPWn
10
+ authorization:
11
+ - OAuth
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ etag:
18
+ - "\"791282cc41ac5442bebc52bec9e34d9a\""
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ x-runtime:
22
+ - "109"
23
+ server:
24
+ - WEBrick/1.3.1 (Ruby/1.8.7/2011-02-18)
25
+ date:
26
+ - Sat, 17 Mar 2012 23:12:27 GMT
27
+ content-length:
28
+ - "97"
29
+ cache-control:
30
+ - private, max-age=0, must-revalidate
31
+ body: "{\"name\":\"SF Bay Area\",\"id\":3,\"lng\":-122.419416,\"links\":{\"get\":\"/api/v1/cities/3\"},\"lat\":37.77493}"
32
+ http_version: "1.1"
@@ -0,0 +1,32 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://localhost:3000/api/v1/cities/3?
6
+ body:
7
+ headers:
8
+ x-client-application:
9
+ - euqmQpzV04GmN1dJTY639PdI7eiSjCjI3lKTkPWn
10
+ authorization:
11
+ - OAuth
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ etag:
18
+ - "\"791282cc41ac5442bebc52bec9e34d9a\""
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ x-runtime:
22
+ - "85"
23
+ server:
24
+ - WEBrick/1.3.1 (Ruby/1.8.7/2011-02-18)
25
+ date:
26
+ - Sat, 17 Mar 2012 23:12:25 GMT
27
+ content-length:
28
+ - "97"
29
+ cache-control:
30
+ - private, max-age=0, must-revalidate
31
+ body: "{\"name\":\"SF Bay Area\",\"id\":3,\"lng\":-122.419416,\"links\":{\"get\":\"/api/v1/cities/3\"},\"lat\":37.77493}"
32
+ http_version: "1.1"
@@ -0,0 +1,362 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://localhost:3000/api/v1/tasks/something-that-doesnot-exists?
6
+ body:
7
+ headers:
8
+ x-client-application:
9
+ - ""
10
+ authorization:
11
+ - OAuth
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 404
15
+ message: Not Found
16
+ headers:
17
+ content-type:
18
+ - text/html; charset=utf-8
19
+ server:
20
+ - WEBrick/1.3.1 (Ruby/1.8.7/2011-02-18)
21
+ date:
22
+ - Sat, 17 Mar 2012 23:11:28 GMT
23
+ content-length:
24
+ - "23415"
25
+ cache-control:
26
+ - no-cache
27
+ body: |
28
+ <html xmlns="http://www.w3.org/1999/xhtml">
29
+ <head>
30
+ <title>Action Controller: Exception caught</title>
31
+ <style>
32
+ body { background-color: #fff; color: #333; }
33
+
34
+ body, p, ol, ul, td {
35
+ font-family: verdana, arial, helvetica, sans-serif;
36
+ font-size: 13px;
37
+ line-height: 18px;
38
+ }
39
+
40
+ pre {
41
+ background-color: #eee;
42
+ padding: 10px;
43
+ font-size: 11px;
44
+ }
45
+
46
+ a { color: #000; }
47
+ a:visited { color: #666; }
48
+ a:hover { color: #fff; background-color:#000; }
49
+ </style>
50
+ </head>
51
+ <body>
52
+
53
+ <h1>
54
+ ActiveRecord::RecordNotFound
55
+
56
+ in Api/v1/tasksController#show
57
+
58
+ </h1>
59
+ <pre>ActiveRecord::RecordNotFound</pre>
60
+
61
+
62
+
63
+ <p><code>RAILS_ROOT: /Users/xlrj/Sites/taskrabbit</code></p>
64
+
65
+ <div id="traces">
66
+
67
+
68
+ <a href="#" onclick="document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Application-Trace').style.display='block';; return false;">Application Trace</a> |
69
+
70
+
71
+ <a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='block';; return false;">Framework Trace</a> |
72
+
73
+
74
+ <a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='block';; return false;">Full Trace</a>
75
+
76
+
77
+
78
+ <div id="Application-Trace" style="display: block;">
79
+ <pre><code>/Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/friendly_id-2.2.7/lib/friendly_id/sluggable_class_methods.rb:30:in `find_one'
80
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/base.rb:1603:in `find_from_ids'
81
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/base.rb:620:in `find'
82
+ /Users/xlrj/Sites/taskrabbit/gems/declarative_authorization/lib/declarative_authorization/in_controller.rb:141:in `load_controller_object'
83
+ /Users/xlrj/Sites/taskrabbit/gems/declarative_authorization/lib/declarative_authorization/in_controller.rb:497:in `send'
84
+ /Users/xlrj/Sites/taskrabbit/gems/declarative_authorization/lib/declarative_authorization/in_controller.rb:497:in `filter_resource_access'
85
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:182:in `call'
86
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:182:in `evaluate_method'
87
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:166:in `call'
88
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:225:in `call'
89
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:629:in `run_before_filters'
90
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:615:in `call_filters'
91
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:638:in `run_before_filters'
92
+ /Users/xlrj/Sites/taskrabbit/app/controllers/rabbit/base_controller.rb:105:in `set_thread_variables'
93
+ /Users/xlrj/Sites/taskrabbit/app/controllers/rabbit/client_app_controller.rb:52:in `set_thread_variables'
94
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `send'
95
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `evaluate_method'
96
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:186:in `call'
97
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:635:in `run_before_filters'
98
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:615:in `call_filters'
99
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:638:in `run_before_filters'
100
+ /Users/xlrj/Sites/taskrabbit/lib/master_slave_hooks.rb:51:in `with_consistency_filter'
101
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `send'
102
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `evaluate_method'
103
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:186:in `call'
104
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:635:in `run_before_filters'
105
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:615:in `call_filters'
106
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
107
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
108
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/core_ext/benchmark.rb:17:in `ms'
109
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/core_ext/benchmark.rb:17:in `ms'
110
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
111
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/rescue.rb:160:in `perform_action_without_flash'
112
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/flash.rb:151:in `perform_action'
113
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:532:in `send'
114
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:532:in `process_without_filters'
115
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:606:in `process_without_compass'
116
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/compass-0.11.5/lib/compass/app_integration/rails/actionpack2/action_controller.rb:7:in `process'
117
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:391:in `process'
118
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:386:in `call'
119
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/routing/route_set.rb:438:in `call'</code></pre>
120
+ </div>
121
+
122
+ <div id="Framework-Trace" style="display: none;">
123
+ <pre><code>/Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/benchmark.rb:308:in `realtime'
124
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:87:in `dispatch'
125
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:121:in `_call'
126
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack'
127
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:114:in `call'
128
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:108:in `call'
129
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
130
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
131
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
132
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:162:in `start'
133
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
134
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:95:in `start'
135
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:92:in `each'
136
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:92:in `start'
137
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:23:in `start'
138
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:82:in `start'
139
+ script/server:3:in `require'
140
+ script/server:3</code></pre>
141
+ </div>
142
+
143
+ <div id="Full-Trace" style="display: none;">
144
+ <pre><code>/Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/friendly_id-2.2.7/lib/friendly_id/sluggable_class_methods.rb:30:in `find_one'
145
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/base.rb:1603:in `find_from_ids'
146
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/base.rb:620:in `find'
147
+ /Users/xlrj/Sites/taskrabbit/gems/declarative_authorization/lib/declarative_authorization/in_controller.rb:141:in `load_controller_object'
148
+ /Users/xlrj/Sites/taskrabbit/gems/declarative_authorization/lib/declarative_authorization/in_controller.rb:497:in `send'
149
+ /Users/xlrj/Sites/taskrabbit/gems/declarative_authorization/lib/declarative_authorization/in_controller.rb:497:in `filter_resource_access'
150
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:182:in `call'
151
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:182:in `evaluate_method'
152
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:166:in `call'
153
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:225:in `call'
154
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:629:in `run_before_filters'
155
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:615:in `call_filters'
156
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:638:in `run_before_filters'
157
+ /Users/xlrj/Sites/taskrabbit/app/controllers/rabbit/base_controller.rb:105:in `set_thread_variables'
158
+ /Users/xlrj/Sites/taskrabbit/app/controllers/rabbit/client_app_controller.rb:52:in `set_thread_variables'
159
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `send'
160
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `evaluate_method'
161
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:186:in `call'
162
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:635:in `run_before_filters'
163
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:615:in `call_filters'
164
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:638:in `run_before_filters'
165
+ /Users/xlrj/Sites/taskrabbit/lib/master_slave_hooks.rb:51:in `with_consistency_filter'
166
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `send'
167
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/callbacks.rb:178:in `evaluate_method'
168
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:186:in `call'
169
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:635:in `run_before_filters'
170
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:615:in `call_filters'
171
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
172
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
173
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/core_ext/benchmark.rb:17:in `ms'
174
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/benchmark.rb:308:in `realtime'
175
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activesupport-2.3.10/lib/active_support/core_ext/benchmark.rb:17:in `ms'
176
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
177
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/rescue.rb:160:in `perform_action_without_flash'
178
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/flash.rb:151:in `perform_action'
179
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:532:in `send'
180
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:532:in `process_without_filters'
181
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/filters.rb:606:in `process_without_compass'
182
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/compass-0.11.5/lib/compass/app_integration/rails/actionpack2/action_controller.rb:7:in `process'
183
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:391:in `process'
184
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/base.rb:386:in `call'
185
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/routing/route_set.rb:438:in `call'
186
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:87:in `dispatch'
187
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:121:in `_call'
188
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack'
189
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/query_cache.rb:29:in `call'
190
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/query_cache.rb:29:in `call'
191
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
192
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/query_cache.rb:9:in `cache'
193
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/query_cache.rb:28:in `call'
194
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/activerecord-2.3.10/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
195
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:60:in `call!'
196
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:22:in `call'
197
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:60:in `call!'
198
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:22:in `call'
199
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:60:in `call!'
200
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:22:in `call'
201
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:60:in `call!'
202
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:22:in `call'
203
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:136:in `call_app!'
204
+ /Users/xlrj/Sites/taskrabbit/lib/omniauth/strategies/facebook_token.rb:21:in `call!'
205
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:22:in `call'
206
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:60:in `call!'
207
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/strategy.rb:22:in `call'
208
+ /Users/xlrj/Sites/taskrabbit/gems/oa-core/lib/omniauth/builder.rb:30:in `call'
209
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/sass-3.1.15/lib/sass/plugin/rack.rb:54:in `call'
210
+ /Users/xlrj/Sites/taskrabbit/lib/middleware/referral_filter.rb:33:in `call'
211
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/string_coercion.rb:25:in `call'
212
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/head.rb:9:in `call'
213
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'
214
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/params_parser.rb:15:in `call'
215
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/session/cookie_store.rb:100:in `call'
216
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/hoptoad_notifier-2.2.2/lib/hoptoad_notifier/rack.rb:27:in `call'
217
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/failsafe.rb:26:in `call'
218
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/lock.rb:11:in `call'
219
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/lock.rb:11:in `synchronize'
220
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/lock.rb:11:in `call'
221
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:114:in `call'
222
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/reloader.rb:34:in `run'
223
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:108:in `call'
224
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rails-2.3.10/lib/rails/rack/static.rb:31:in `call'
225
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/urlmap.rb:47:in `call'
226
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/urlmap.rb:41:in `each'
227
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/urlmap.rb:41:in `call'
228
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rails-2.3.10/lib/rails/rack/log_tailer.rb:17:in `call'
229
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/content_length.rb:13:in `call'
230
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48:in `service'
231
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
232
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
233
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
234
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:162:in `start'
235
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
236
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:95:in `start'
237
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:92:in `each'
238
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:92:in `start'
239
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:23:in `start'
240
+ /Users/xlrj/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:82:in `start'
241
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rack-1.1.0/lib/rack/handler/webrick.rb:14:in `run'
242
+ /Users/xlrj/.rvm/gems/ree-1.8.7-2011.03@taskrabbit/gems/rails-2.3.10/lib/commands/server.rb:111
243
+ script/server:3:in `require'
244
+ script/server:3</code></pre>
245
+ </div>
246
+
247
+ </div>
248
+
249
+
250
+
251
+
252
+
253
+
254
+ <h2 style="margin-top: 30px">Request</h2>
255
+ <p><b>Parameters</b>: <pre>{&quot;format&quot;=&gt;:json,
256
+ &quot;id&quot;=&gt;&quot;something-that-doesnot-exists&quot;}</pre></p>
257
+
258
+ <p><a href="#" onclick="document.getElementById('session_dump').style.display='block'; return false;">Show session dump</a></p>
259
+ <div id="session_dump" style="display:none"><pre class='debug_dump'>---
260
+ </pre></div>
261
+
262
+
263
+ <h2 style="margin-top: 30px">Response</h2>
264
+ <p><b>Headers</b>: <pre>{&quot;Content-Type&quot;=&gt;&quot;&quot;,
265
+ &quot;Cache-Control&quot;=&gt;&quot;no-cache&quot;}</pre></p>
266
+
267
+
268
+
269
+ </body>
270
+ </html><script type="text/javascript">
271
+ var Hoptoad = {
272
+ host : &quot;hoptoadapp.com&quot;,
273
+ api_key : &quot;d05f933d72e9ce90a819ed66a3f3e5cd&quot;,
274
+ notice : {&quot;error_class&quot;:&quot;ActiveRecord::RecordNotFound&quot;,&quot;line_number&quot;:&quot;30&quot;,&quot;action&quot;:&quot;show&quot;,&quot;component&quot;:&quot;api/v1/tasks&quot;,&quot;file&quot;:&quot;[GEM_ROOT]/gems/friendly_id-2.2.7/lib/friendly_id/sluggable_class_methods.rb&quot;,&quot;environment_name&quot;:&quot;production&quot;},
275
+ message : 'This error exists in production!',
276
+
277
+ initialize: function() {
278
+ if (this.initialized) {
279
+ return;
280
+ } else {
281
+ this.initialized = true;
282
+ }
283
+
284
+ var data = [];
285
+
286
+ for (var key in this.notice) {
287
+ data[data.length] = 'notice[' + key + ']=' + this.notice[key];
288
+ }
289
+
290
+ data[data.length] = 'notice[api_key]=' + this.api_key;
291
+ data[data.length] = 'callback=Hoptoad.onSuccess';
292
+ data[data.length] = '_=' + (new Date()).getTime();
293
+
294
+ var head = document.getElementsByTagName('head')[0];
295
+ var done = false;
296
+
297
+ var
298
+ script = document.createElement('script');
299
+ script.src = 'http://' + this.host + '/notices_api/v1/notices/exist?' +
300
+ data.join('&');
301
+ script.type = 'text/javascript';
302
+ script.onload = script.onreadystatechange = function(){
303
+ if (!done && (!this.readyState ||
304
+ this.readyState == 'loaded' || this.readyState == 'complete')) {
305
+
306
+ done = true;
307
+
308
+ // Handle memory leak in IE. (via jQuery)
309
+ script.onload = script.onreadystatechange = null;
310
+ head.removeChild(script);
311
+ }
312
+ };
313
+
314
+ head.appendChild(script);
315
+ },
316
+
317
+ onSuccess: function(error) {
318
+ var body = document.getElementsByTagName('body')[0];
319
+ var text = document.createTextNode(this.message);
320
+ var element = document.createElement('a');
321
+
322
+ element.id = 'hoptoad';
323
+ element.href = 'http://' + error.subdomain + '.' + this.host +
324
+ '/projects/' + error.project_id + '/errors/' + error.id;
325
+ element.appendChild(text);
326
+
327
+ body.insertBefore(element, body.firstChild);
328
+
329
+ var h1 = document.getElementsByTagName('h1')[0];
330
+ var pre = document.getElementsByTagName('pre')[0];
331
+ var wrapper = document.createElement('div');
332
+
333
+ wrapper.id = 'wrapper';
334
+ wrapper.appendChild(h1);
335
+ wrapper.appendChild(pre);
336
+
337
+ body.insertBefore(wrapper, body.children[1]);
338
+ }
339
+ };
340
+
341
+ window.onload = function() {
342
+ Hoptoad.initialize.apply(Hoptoad);
343
+ };
344
+ </script>
345
+
346
+ <style type="text/css">
347
+ #hoptoad {
348
+ background: #FFF url(http://hoptoadapp.com/images/fell-off-the-toad.gif) no-repeat top right;
349
+ color: #F00;
350
+ padding: 45px 101px 45px 12px;
351
+ font-size: 14px;
352
+ font-weight: bold;
353
+ display: block;
354
+ float: right;
355
+ }
356
+
357
+ #wrapper {
358
+ padding-right: 360px;
359
+ }
360
+ </style>
361
+
362
+ http_version: "1.1"