recurly 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of recurly might be problematic. Click here for more details.

Files changed (65) hide show
  1. data/lib/patches/rails2/active_resource/connection.rb +10 -0
  2. data/lib/patches/{active_resource → rails3/active_resource}/connection.rb +0 -0
  3. data/lib/recurly.rb +7 -2
  4. data/lib/recurly/transparent.rb +4 -1
  5. data/lib/recurly/version.rb +1 -1
  6. data/spec/integration/transaction_spec.rb +5 -2
  7. data/spec/unit/transparent_spec.rb +59 -1
  8. data/spec/vcr/account/accept-language-account/1297746103.yml +8 -11
  9. data/spec/vcr/account/close/1297746103.yml +23 -30
  10. data/spec/vcr/account/create-blank/1297746103.yml +5 -7
  11. data/spec/vcr/account/create-duplicate/1297746103.yml +13 -18
  12. data/spec/vcr/account/create-min/1297746103.yml +8 -11
  13. data/spec/vcr/account/create/1297746103.yml +8 -11
  14. data/spec/vcr/account/find/1297746103.yml +22 -29
  15. data/spec/vcr/account/list/1297746103.yml +150 -196
  16. data/spec/vcr/account/update/1297746103.yml +37 -46
  17. data/spec/vcr/billing/create/1298594128.yml +24 -31
  18. data/spec/vcr/billing/destroy/1298594128.yml +35 -46
  19. data/spec/vcr/billing/find/1298594128.yml +32 -41
  20. data/spec/vcr/billing/update/1298594128.yml +32 -41
  21. data/spec/vcr/charge/create/1297746103.yml +36 -45
  22. data/spec/vcr/charge/delete-uninvoiced/1297746103.yml +46 -59
  23. data/spec/vcr/charge/list-all/1297746103.yml +51 -62
  24. data/spec/vcr/charge/list-invoiced/1297746103.yml +82 -97
  25. data/spec/vcr/charge/list-pending/1297746103.yml +51 -62
  26. data/spec/vcr/charge/lookup/1297746103.yml +28 -35
  27. data/spec/vcr/coupon/create/1299714521.yml +23 -30
  28. data/spec/vcr/coupon/destroy/1299714521.yml +26 -35
  29. data/spec/vcr/credit/create/1299714599.yml +28 -35
  30. data/spec/vcr/credit/delete/1299714599.yml +41 -52
  31. data/spec/vcr/credit/list/1299714599.yml +51 -62
  32. data/spec/vcr/credit/lookup/1299714599.yml +28 -35
  33. data/spec/vcr/invoice/create-no-charges/1297746103.yml +21 -28
  34. data/spec/vcr/invoice/create/1297746103.yml +50 -61
  35. data/spec/vcr/invoice/list/1297746103.yml +73 -88
  36. data/spec/vcr/invoice/lookup/1297746103.yml +52 -63
  37. data/spec/vcr/plan/all.yml +18 -24
  38. data/spec/vcr/plan/find.yml +18 -24
  39. data/spec/vcr/plan/update.yml +18 -24
  40. data/spec/vcr/subscription/addons/add/1297746103.yml +331 -38
  41. data/spec/vcr/subscription/addons/create/1297746103.yml +331 -38
  42. data/spec/vcr/subscription/addons/remove/1297746103.yml +331 -38
  43. data/spec/vcr/subscription/cancel-with-code/1297746103.yml +71 -86
  44. data/spec/vcr/subscription/cancel/1297746103.yml +59 -72
  45. data/spec/vcr/subscription/change1/1297746103.yml +55 -68
  46. data/spec/vcr/subscription/change2/1297746103.yml +55 -68
  47. data/spec/vcr/subscription/create/1297746103.yml +25 -32
  48. data/spec/vcr/subscription/find/1297746103.yml +35 -44
  49. data/spec/vcr/subscription/reactivate/1297746103.yml +64 -79
  50. data/spec/vcr/subscription/refund-full/1297746103.yml +52 -65
  51. data/spec/vcr/subscription/refund-none/1297746103.yml +52 -65
  52. data/spec/vcr/subscription/refund-partial/1297746103.yml +52 -65
  53. data/spec/vcr/transaction/all/1300473500.yml +387 -0
  54. data/spec/vcr/transaction/create-no-account/{1297746103.yml → 1300473500.yml} +19 -22
  55. data/spec/vcr/transaction/create-with-account/{1297746103.yml → 1300473500.yml} +55 -43
  56. data/spec/vcr/transaction/list-filled/1300473500.yml +603 -0
  57. data/spec/vcr/transaction/list-initial/{1297746103.yml → 1300473500.yml} +45 -52
  58. data/spec/vcr/transaction/lookup/1300473500.yml +561 -0
  59. data/spec/vcr/transaction/refund/{1297746103.yml → 1300473500.yml} +113 -41
  60. data/spec/vcr/transaction/void/1300473500.yml +620 -0
  61. metadata +21 -20
  62. data/spec/vcr/transaction/all/1297746103.yml +0 -389
  63. data/spec/vcr/transaction/list-filled/1297746103.yml +0 -213
  64. data/spec/vcr/transaction/lookup/1297746103.yml +0 -213
  65. data/spec/vcr/transaction/void/1297746103.yml +0 -213
@@ -32,27 +32,24 @@
32
32
  response: !ruby/struct:VCR::Response
33
33
  status: !ruby/struct:VCR::ResponseStatus
34
34
  code: 201
35
- message: "Created "
35
+ message: Created
36
36
  headers:
37
37
  cache-control:
38
38
  - no-cache
39
39
  location:
40
40
  - http://app.recurly.local:3000/accounts/subscription-addons-create-1297746103
41
41
  x-runtime:
42
- - "422"
42
+ - "463"
43
43
  content-type:
44
44
  - application/xml; charset=utf-8
45
45
  content-length:
46
46
  - "607"
47
- server:
48
- - WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)
49
- date:
50
- - Fri, 11 Mar 2011 18:47:30 GMT
47
+ set-cookie:
48
+ - _recurly_session=58902afc6619fd8136a86b4597845987; domain=.recurly.local; path=/; HttpOnly
51
49
  connection:
52
50
  - close
53
- set-cookie:
54
- - account_credentials=23a60c88888934377b6f3eede23629ea8ca6a425c9f4ec5b014bd9558fd5b2ee8d0ffee7529c540236930fcc1a5546f83a4b623932a514fae7baaffe8dd5ce11%3A%3A; domain=.recurly.local; path=/
55
- - _recurly_session=38b211de1c6fb18bdff7fe7d07793863; domain=.recurly.local; path=/; HttpOnly
51
+ server:
52
+ - thin 1.2.7 codename No Hup
56
53
  body: |
57
54
  <?xml version="1.0" encoding="UTF-8"?>
58
55
  <account>
@@ -65,8 +62,8 @@
65
62
  <company_name>Recurly Ruby Gem</company_name>
66
63
  <balance_in_cents type="integer">0</balance_in_cents>
67
64
  <closed type="boolean">false</closed>
68
- <hosted_login_token>7bb5d04ca9754a6593daab8bc29ba0e7</hosted_login_token>
69
- <created_at type="datetime">2011-03-11T18:47:30Z</created_at>
65
+ <hosted_login_token>37e8e0fc0e5840168d9a1aa69ee453bc</hosted_login_token>
66
+ <created_at type="datetime">2011-03-18T18:47:38Z</created_at>
70
67
  <state>active</state>
71
68
  </account>
72
69
 
@@ -90,10 +87,10 @@
90
87
  response: !ruby/struct:VCR::Response
91
88
  status: !ruby/struct:VCR::ResponseStatus
92
89
  code: 200
93
- message: "OK "
90
+ message: OK
94
91
  headers:
95
92
  x-runtime:
96
- - "170"
93
+ - "272"
97
94
  content-type:
98
95
  - application/xml; charset=utf-8
99
96
  etag:
@@ -102,14 +99,12 @@
102
99
  - private, max-age=0, must-revalidate
103
100
  content-length:
104
101
  - "1146"
105
- server:
106
- - WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)
107
- date:
108
- - Fri, 11 Mar 2011 18:47:31 GMT
102
+ set-cookie:
103
+ - _recurly_session=8f7acef6ec76ad8cf787d9ded8c8eb2c; domain=.recurly.local; path=/; HttpOnly
109
104
  connection:
110
105
  - close
111
- set-cookie:
112
- - _recurly_session=66dbf0d6bb5cf6c814117ddc90c56da4; domain=.recurly.local; path=/; HttpOnly
106
+ server:
107
+ - thin 1.2.7 codename No Hup
113
108
  body: |
114
109
  <?xml version="1.0" encoding="UTF-8"?>
115
110
  <plan>
@@ -173,8 +168,8 @@
173
168
  <username type="yaml" nil="true"></username>
174
169
  <balance-in-cents type="integer">0</balance-in-cents>
175
170
  <closed type="boolean">false</closed>
176
- <hosted-login-token>7bb5d04ca9754a6593daab8bc29ba0e7</hosted-login-token>
177
- <created-at type="datetime">2011-03-11T18:47:30Z</created-at>
171
+ <hosted-login-token>37e8e0fc0e5840168d9a1aa69ee453bc</hosted-login-token>
172
+ <created-at type="datetime">2011-03-18T18:47:38Z</created-at>
178
173
  <state>active</state>
179
174
  </account>
180
175
  <add-ons type="array">
@@ -200,30 +195,328 @@
200
195
  - close
201
196
  response: !ruby/struct:VCR::Response
202
197
  status: !ruby/struct:VCR::ResponseStatus
203
- code: 422
204
- message: ""
198
+ code: 500
199
+ message: Internal Server Error
205
200
  headers:
206
201
  cache-control:
207
202
  - no-cache
208
- x-runtime:
209
- - "538"
210
203
  content-type:
211
- - application/xml; charset=utf-8
204
+ - text/html; charset=utf-8
212
205
  content-length:
213
- - "228"
214
- server:
215
- - WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)
216
- date:
217
- - Fri, 11 Mar 2011 18:47:34 GMT
206
+ - "19295"
207
+ set-cookie:
208
+ - _recurly_session=e3bad4a0822d21903aca22110ffc02d0; domain=.recurly.local; path=/; HttpOnly
218
209
  connection:
219
210
  - close
220
- set-cookie:
221
- - _recurly_session=431abf0ece99fcbbd37ea2a25279024a; domain=.recurly.local; path=/; HttpOnly
211
+ server:
212
+ - thin 1.2.7 codename No Hup
222
213
  body: |
223
- <?xml version="1.0" encoding="UTF-8"?>
224
- <errors>
225
- <error field="subscriptions">Subscriptions is invalid</error>
226
- <error field="subscription_add_ons.add_on_id">Subscription add ons.add on Add On Code not found</error>
227
- </errors>
214
+ <html xmlns="http://www.w3.org/1999/xhtml">
215
+ <head>
216
+ <title>Action Controller: Exception caught</title>
217
+ <style>
218
+ body { background-color: #fff; color: #333; }
219
+
220
+ body, p, ol, ul, td {
221
+ font-family: verdana, arial, helvetica, sans-serif;
222
+ font-size: 13px;
223
+ line-height: 18px;
224
+ }
225
+
226
+ pre {
227
+ background-color: #eee;
228
+ padding: 10px;
229
+ font-size: 11px;
230
+ }
231
+
232
+ a { color: #000; }
233
+ a:visited { color: #666; }
234
+ a:hover { color: #fff; background-color:#000; }
235
+ </style>
236
+ </head>
237
+ <body>
238
+
239
+ <h1>
240
+ NoMethodError
241
+
242
+ in Accounts/subscriptionController#create
243
+
244
+ </h1>
245
+ <pre>You have a nil object when you didn't expect it!
246
+ You might have expected an instance of Array.
247
+ The error occurred while evaluating nil.slice</pre>
248
+
249
+
250
+
251
+ <p><code>RAILS_ROOT: /Users/isaac/Development/recurly/app</code></p>
252
+
253
+ <div id="traces">
254
+
255
+
256
+ <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> |
257
+
258
+
259
+ <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> |
260
+
261
+
262
+ <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>
263
+
264
+
265
+
266
+ <div id="Application-Trace" style="display: block;">
267
+ <pre><code>/Users/isaac/Development/recurly/app/app/api/subscription_api.rb:23:in `block in sanitize_params'
268
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `collect'
269
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `sanitize_params'
270
+ /Users/isaac/Development/recurly/app/app/controllers/accounts/subscription_controller.rb:250:in `init_account_and_billing_info'</code></pre>
271
+ </div>
272
+
273
+ <div id="Framework-Trace" style="display: none;">
274
+ <pre><code>/Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:178:in `evaluate_method'
275
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:166:in `call'
276
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:225:in `call'
277
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:629:in `run_before_filters'
278
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:615:in `call_filters'
279
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:610:in `perform_action_with_filters'
280
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `block in perform_action_with_benchmark'
281
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `block in ms'
282
+ /Users/isaac/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
283
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `ms'
284
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `perform_action_with_benchmark'
285
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/rescue.rb:160:in `perform_action_with_rescue'
286
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/flash.rb:151:in `perform_action_with_flash'
287
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:532:in `process'
288
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:606:in `process_with_filters'
289
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/compass-0.10.6/lib/compass/app_integration/rails/actionpack2/action_controller.rb:7:in `process_with_compass'
290
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:391:in `process'
291
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:386:in `call'
292
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:438:in `call'
293
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:87:in `dispatch'
294
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:121:in `_call'
295
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:130:in `block in build_middleware_stack'
296
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `call'
297
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `block in call'
298
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
299
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:9:in `cache'
300
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:28:in `call'
301
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
302
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/haml-3.0.25/lib/sass/plugin/rack.rb:41:in `call'
303
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/string_coercion.rb:25:in `call'
304
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/head.rb:9:in `call'
305
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'
306
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/params_parser.rb:15:in `call'
307
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/session/abstract_store.rb:177:in `call'
308
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/cache/strategy/local_cache.rb:25:in `call'
309
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/rack.rb:27:in `call'
310
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/failsafe.rb:26:in `call'
311
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/user_informer.rb:12:in `call'
312
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:114:in `block in call'
313
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/reloader.rb:34:in `run'
314
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:108:in `call'
315
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/rack/fiber_pool.rb:19:in `block in call'
316
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `call'
317
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `block (3 levels) in initialize'
318
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `loop'
319
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `block (2 levels) in initialize'</code></pre>
320
+ </div>
321
+
322
+ <div id="Full-Trace" style="display: none;">
323
+ <pre><code>/Users/isaac/Development/recurly/app/app/api/subscription_api.rb:23:in `block in sanitize_params'
324
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `collect'
325
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `sanitize_params'
326
+ /Users/isaac/Development/recurly/app/app/controllers/accounts/subscription_controller.rb:250:in `init_account_and_billing_info'
327
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:178:in `evaluate_method'
328
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:166:in `call'
329
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:225:in `call'
330
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:629:in `run_before_filters'
331
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:615:in `call_filters'
332
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:610:in `perform_action_with_filters'
333
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `block in perform_action_with_benchmark'
334
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `block in ms'
335
+ /Users/isaac/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
336
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `ms'
337
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `perform_action_with_benchmark'
338
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/rescue.rb:160:in `perform_action_with_rescue'
339
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/flash.rb:151:in `perform_action_with_flash'
340
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:532:in `process'
341
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:606:in `process_with_filters'
342
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/compass-0.10.6/lib/compass/app_integration/rails/actionpack2/action_controller.rb:7:in `process_with_compass'
343
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:391:in `process'
344
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:386:in `call'
345
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:438:in `call'
346
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:87:in `dispatch'
347
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:121:in `_call'
348
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:130:in `block in build_middleware_stack'
349
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `call'
350
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `block in call'
351
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
352
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:9:in `cache'
353
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:28:in `call'
354
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
355
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/haml-3.0.25/lib/sass/plugin/rack.rb:41:in `call'
356
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/string_coercion.rb:25:in `call'
357
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/head.rb:9:in `call'
358
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'
359
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/params_parser.rb:15:in `call'
360
+ /Users/isaac/Development/recurly/app/lib/xml_request_check.rb:10:in `call'
361
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/session/abstract_store.rb:177:in `call'
362
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/cache/strategy/local_cache.rb:25:in `call'
363
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/rack.rb:27:in `call'
364
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/failsafe.rb:26:in `call'
365
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/user_informer.rb:12:in `call'
366
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:114:in `block in call'
367
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/reloader.rb:34:in `run'
368
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:108:in `call'
369
+ /Users/isaac/Development/recurly/app/lib/rack_rails_check.rb:16:in `call'
370
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/rack/fiber_pool.rb:19:in `block in call'
371
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `call'
372
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `block (3 levels) in initialize'
373
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `loop'
374
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `block (2 levels) in initialize'</code></pre>
375
+ </div>
376
+
377
+ </div>
378
+
379
+
380
+
381
+
382
+
383
+
384
+ <h2 style="margin-top: 30px">Request</h2>
385
+ <p><b>Parameters</b>: <pre>{&quot;subscription&quot;=&gt;{&quot;plan_code&quot;=&gt;&quot;paid&quot;,
386
+ &quot;quantity&quot;=&gt;1,
387
+ &quot;account&quot;=&gt;{&quot;account_code&quot;=&gt;&quot;subscription-addons-create-1297746103&quot;,
388
+ &quot;first_name&quot;=&gt;&quot;Verena&quot;,
389
+ &quot;last_name&quot;=&gt;&quot;Test&quot;,
390
+ &quot;email&quot;=&gt;&quot;verena@test.com&quot;,
391
+ &quot;company_name&quot;=&gt;&quot;Recurly Ruby Gem&quot;,
392
+ &quot;billing_info&quot;=&gt;{&quot;first_name&quot;=&gt;&quot;Verena&quot;,
393
+ &quot;last_name&quot;=&gt;&quot;Test&quot;,
394
+ &quot;address1&quot;=&gt;&quot;123 Test St&quot;,
395
+ &quot;city&quot;=&gt;&quot;San Francisco&quot;,
396
+ &quot;state&quot;=&gt;&quot;CA&quot;,
397
+ &quot;zip&quot;=&gt;&quot;94115&quot;,
398
+ &quot;country&quot;=&gt;&quot;US&quot;,
399
+ &quot;credit_card&quot;=&gt;{&quot;number&quot;=&gt;&quot;4111111111111111&quot;,
400
+ &quot;year&quot;=&gt;2012,
401
+ &quot;month&quot;=&gt;3,
402
+ &quot;verification_value&quot;=&gt;&quot;123&quot;}},
403
+ &quot;accept_language&quot;=&gt;nil,
404
+ &quot;id&quot;=&gt;&quot;subscription-addons-create-1297746103&quot;,
405
+ &quot;username&quot;=&gt;nil,
406
+ &quot;balance_in_cents&quot;=&gt;0,
407
+ &quot;closed&quot;=&gt;false,
408
+ &quot;hosted_login_token&quot;=&gt;&quot;37e8e0fc0e5840168d9a1aa69ee453bc&quot;,
409
+ &quot;created_at&quot;=&gt;2011-03-18 18:47:38 UTC,
410
+ &quot;state&quot;=&gt;&quot;active&quot;},
411
+ &quot;add_ons&quot;=&gt;[{&quot;add_on_code&quot;=&gt;&quot;special&quot;,
412
+ &quot;quantity&quot;=&gt;1,
413
+ &quot;unit_amount&quot;=&gt;10}],
414
+ &quot;addons&quot;=&gt;[]},
415
+ &quot;account_id&quot;=&gt;&quot;subscription-addons-create-1297746103&quot;,
416
+ &quot;format&quot;=&gt;&quot;xml&quot;}</pre></p>
417
+
418
+ <p><a href="#" onclick="document.getElementById('session_dump').style.display='block'; return false;">Show session dump</a></p>
419
+ <div id="session_dump" style="display:none"><pre class='debug_dump'>---
420
+ </pre></div>
421
+
422
+
423
+ <h2 style="margin-top: 30px">Response</h2>
424
+ <p><b>Headers</b>: <pre>{&quot;Cache-Control&quot;=&gt;&quot;no-cache&quot;,
425
+ &quot;Content-Type&quot;=&gt;&quot;&quot;}</pre></p>
426
+
427
+
428
+
429
+ </body>
430
+ </html><script type="text/javascript">
431
+ var Hoptoad = {
432
+ host : "hoptoadapp.com",
433
+ api_key : "2de5471006eea4f5e5711302a6d2c4fc",
434
+ notice : {"action":"create","component":"accounts/subscription","error_class":"NoMethodError","environment_name":"production","file":"[PROJECT_ROOT]/app/api/subscription_api.rb","line_number":"23"},
435
+ message : 'This error exists in production!',
436
+
437
+ initialize: function() {
438
+ if (this.initialized) {
439
+ return;
440
+ } else {
441
+ this.initialized = true;
442
+ }
443
+
444
+ var data = [];
445
+
446
+ for (var key in this.notice) {
447
+ data[data.length] = 'notice[' + key + ']=' + this.notice[key];
448
+ }
449
+
450
+ data[data.length] = 'notice[api_key]=' + this.api_key;
451
+ data[data.length] = 'callback=Hoptoad.onSuccess';
452
+ data[data.length] = '_=' + (new Date()).getTime();
453
+
454
+ var head = document.getElementsByTagName('head')[0];
455
+ var done = false;
456
+
457
+ var
458
+ script = document.createElement('script');
459
+ script.src = 'http://' + this.host + '/notices_api/v1/notices/exist?' +
460
+ data.join('&');
461
+ script.type = 'text/javascript';
462
+ script.onload = script.onreadystatechange = function(){
463
+ if (!done && (!this.readyState ||
464
+ this.readyState == 'loaded' || this.readyState == 'complete')) {
465
+
466
+ done = true;
467
+
468
+ // Handle memory leak in IE. (via jQuery)
469
+ script.onload = script.onreadystatechange = null;
470
+ head.removeChild(script);
471
+ }
472
+ };
473
+
474
+ head.appendChild(script);
475
+ },
476
+
477
+ onSuccess: function(error) {
478
+ var body = document.getElementsByTagName('body')[0];
479
+ var text = document.createTextNode(this.message);
480
+ var element = document.createElement('a');
481
+
482
+ element.id = 'hoptoad';
483
+ element.href = 'http://' + error.subdomain + '.' + this.host +
484
+ '/projects/' + error.project_id + '/errors/' + error.id;
485
+ element.appendChild(text);
486
+
487
+ body.insertBefore(element, body.firstChild);
488
+
489
+ var h1 = document.getElementsByTagName('h1')[0];
490
+ var pre = document.getElementsByTagName('pre')[0];
491
+ var wrapper = document.createElement('div');
492
+
493
+ wrapper.id = 'wrapper';
494
+ wrapper.appendChild(h1);
495
+ wrapper.appendChild(pre);
496
+
497
+ body.insertBefore(wrapper, body.children[1]);
498
+ }
499
+ };
500
+
501
+ window.onload = function() {
502
+ Hoptoad.initialize.apply(Hoptoad);
503
+ };
504
+ </script>
505
+
506
+ <style type="text/css">
507
+ #hoptoad {
508
+ background: #FFF url(http://hoptoadapp.com/images/fell-off-the-toad.gif) no-repeat top right;
509
+ color: #F00;
510
+ padding: 45px 101px 45px 12px;
511
+ font-size: 14px;
512
+ font-weight: bold;
513
+ display: block;
514
+ float: right;
515
+ }
516
+
517
+ #wrapper {
518
+ padding-right: 360px;
519
+ }
520
+ </style>
228
521
 
229
522
  http_version: "1.1"
@@ -32,27 +32,24 @@
32
32
  response: !ruby/struct:VCR::Response
33
33
  status: !ruby/struct:VCR::ResponseStatus
34
34
  code: 201
35
- message: "Created "
35
+ message: Created
36
36
  headers:
37
37
  cache-control:
38
38
  - no-cache
39
39
  location:
40
40
  - http://app.recurly.local:3000/accounts/subscription-addons-remove-1297746103
41
41
  x-runtime:
42
- - "479"
42
+ - "340"
43
43
  content-type:
44
44
  - application/xml; charset=utf-8
45
45
  content-length:
46
46
  - "607"
47
- server:
48
- - WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)
49
- date:
50
- - Fri, 11 Mar 2011 18:47:43 GMT
47
+ set-cookie:
48
+ - _recurly_session=a8d47b82e12e9707986c9cffe3a3ad1f; domain=.recurly.local; path=/; HttpOnly
51
49
  connection:
52
50
  - close
53
- set-cookie:
54
- - account_credentials=50cd1b7e428344f080d79d3ee04c34e5caa601ec8f316238d92e27ce7bc79860392771f5d37384b0c5ceb92f10da1a666272607f764595402be3eaab0e8969d3%3A%3A; domain=.recurly.local; path=/
55
- - _recurly_session=d8605a9e25dd8675b82628f3a86ca9a9; domain=.recurly.local; path=/; HttpOnly
51
+ server:
52
+ - thin 1.2.7 codename No Hup
56
53
  body: |
57
54
  <?xml version="1.0" encoding="UTF-8"?>
58
55
  <account>
@@ -65,8 +62,8 @@
65
62
  <company_name>Recurly Ruby Gem</company_name>
66
63
  <balance_in_cents type="integer">0</balance_in_cents>
67
64
  <closed type="boolean">false</closed>
68
- <hosted_login_token>60d2c3798c2349618c2fa03ca4a5ccc7</hosted_login_token>
69
- <created_at type="datetime">2011-03-11T18:47:42Z</created_at>
65
+ <hosted_login_token>d79a716084764737a1b1c6c677c94de8</hosted_login_token>
66
+ <created_at type="datetime">2011-03-18T18:47:50Z</created_at>
70
67
  <state>active</state>
71
68
  </account>
72
69
 
@@ -90,10 +87,10 @@
90
87
  response: !ruby/struct:VCR::Response
91
88
  status: !ruby/struct:VCR::ResponseStatus
92
89
  code: 200
93
- message: "OK "
90
+ message: OK
94
91
  headers:
95
92
  x-runtime:
96
- - "176"
93
+ - "286"
97
94
  content-type:
98
95
  - application/xml; charset=utf-8
99
96
  etag:
@@ -102,14 +99,12 @@
102
99
  - private, max-age=0, must-revalidate
103
100
  content-length:
104
101
  - "1146"
105
- server:
106
- - WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)
107
- date:
108
- - Fri, 11 Mar 2011 18:47:45 GMT
102
+ set-cookie:
103
+ - _recurly_session=91967423955c434df3934d138e95ff6c; domain=.recurly.local; path=/; HttpOnly
109
104
  connection:
110
105
  - close
111
- set-cookie:
112
- - _recurly_session=c61f5e486a1525d50eea05e83fd1ff34; domain=.recurly.local; path=/; HttpOnly
106
+ server:
107
+ - thin 1.2.7 codename No Hup
113
108
  body: |
114
109
  <?xml version="1.0" encoding="UTF-8"?>
115
110
  <plan>
@@ -173,8 +168,8 @@
173
168
  <username type="yaml" nil="true"></username>
174
169
  <balance-in-cents type="integer">0</balance-in-cents>
175
170
  <closed type="boolean">false</closed>
176
- <hosted-login-token>60d2c3798c2349618c2fa03ca4a5ccc7</hosted-login-token>
177
- <created-at type="datetime">2011-03-11T18:47:42Z</created-at>
171
+ <hosted-login-token>d79a716084764737a1b1c6c677c94de8</hosted-login-token>
172
+ <created-at type="datetime">2011-03-18T18:47:50Z</created-at>
178
173
  <state>active</state>
179
174
  </account>
180
175
  <add-ons type="array">
@@ -200,30 +195,328 @@
200
195
  - close
201
196
  response: !ruby/struct:VCR::Response
202
197
  status: !ruby/struct:VCR::ResponseStatus
203
- code: 422
204
- message: ""
198
+ code: 500
199
+ message: Internal Server Error
205
200
  headers:
206
201
  cache-control:
207
202
  - no-cache
208
- x-runtime:
209
- - "594"
210
203
  content-type:
211
- - application/xml; charset=utf-8
204
+ - text/html; charset=utf-8
212
205
  content-length:
213
- - "228"
214
- server:
215
- - WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)
216
- date:
217
- - Fri, 11 Mar 2011 18:47:47 GMT
206
+ - "19297"
207
+ set-cookie:
208
+ - _recurly_session=b0c1610b7ff3bf3905e575368148cdb0; domain=.recurly.local; path=/; HttpOnly
218
209
  connection:
219
210
  - close
220
- set-cookie:
221
- - _recurly_session=e347226e420cd72a77a49944fcc54882; domain=.recurly.local; path=/; HttpOnly
211
+ server:
212
+ - thin 1.2.7 codename No Hup
222
213
  body: |
223
- <?xml version="1.0" encoding="UTF-8"?>
224
- <errors>
225
- <error field="subscriptions">Subscriptions is invalid</error>
226
- <error field="subscription_add_ons.add_on_id">Subscription add ons.add on Add On Code not found</error>
227
- </errors>
214
+ <html xmlns="http://www.w3.org/1999/xhtml">
215
+ <head>
216
+ <title>Action Controller: Exception caught</title>
217
+ <style>
218
+ body { background-color: #fff; color: #333; }
219
+
220
+ body, p, ol, ul, td {
221
+ font-family: verdana, arial, helvetica, sans-serif;
222
+ font-size: 13px;
223
+ line-height: 18px;
224
+ }
225
+
226
+ pre {
227
+ background-color: #eee;
228
+ padding: 10px;
229
+ font-size: 11px;
230
+ }
231
+
232
+ a { color: #000; }
233
+ a:visited { color: #666; }
234
+ a:hover { color: #fff; background-color:#000; }
235
+ </style>
236
+ </head>
237
+ <body>
238
+
239
+ <h1>
240
+ NoMethodError
241
+
242
+ in Accounts/subscriptionController#create
243
+
244
+ </h1>
245
+ <pre>You have a nil object when you didn't expect it!
246
+ You might have expected an instance of Array.
247
+ The error occurred while evaluating nil.slice</pre>
248
+
249
+
250
+
251
+ <p><code>RAILS_ROOT: /Users/isaac/Development/recurly/app</code></p>
252
+
253
+ <div id="traces">
254
+
255
+
256
+ <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> |
257
+
258
+
259
+ <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> |
260
+
261
+
262
+ <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>
263
+
264
+
265
+
266
+ <div id="Application-Trace" style="display: block;">
267
+ <pre><code>/Users/isaac/Development/recurly/app/app/api/subscription_api.rb:23:in `block in sanitize_params'
268
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `collect'
269
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `sanitize_params'
270
+ /Users/isaac/Development/recurly/app/app/controllers/accounts/subscription_controller.rb:250:in `init_account_and_billing_info'</code></pre>
271
+ </div>
272
+
273
+ <div id="Framework-Trace" style="display: none;">
274
+ <pre><code>/Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:178:in `evaluate_method'
275
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:166:in `call'
276
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:225:in `call'
277
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:629:in `run_before_filters'
278
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:615:in `call_filters'
279
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:610:in `perform_action_with_filters'
280
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `block in perform_action_with_benchmark'
281
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `block in ms'
282
+ /Users/isaac/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
283
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `ms'
284
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `perform_action_with_benchmark'
285
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/rescue.rb:160:in `perform_action_with_rescue'
286
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/flash.rb:151:in `perform_action_with_flash'
287
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:532:in `process'
288
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:606:in `process_with_filters'
289
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/compass-0.10.6/lib/compass/app_integration/rails/actionpack2/action_controller.rb:7:in `process_with_compass'
290
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:391:in `process'
291
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:386:in `call'
292
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:438:in `call'
293
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:87:in `dispatch'
294
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:121:in `_call'
295
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:130:in `block in build_middleware_stack'
296
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `call'
297
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `block in call'
298
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
299
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:9:in `cache'
300
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:28:in `call'
301
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
302
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/haml-3.0.25/lib/sass/plugin/rack.rb:41:in `call'
303
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/string_coercion.rb:25:in `call'
304
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/head.rb:9:in `call'
305
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'
306
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/params_parser.rb:15:in `call'
307
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/session/abstract_store.rb:177:in `call'
308
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/cache/strategy/local_cache.rb:25:in `call'
309
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/rack.rb:27:in `call'
310
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/failsafe.rb:26:in `call'
311
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/user_informer.rb:12:in `call'
312
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:114:in `block in call'
313
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/reloader.rb:34:in `run'
314
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:108:in `call'
315
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/rack/fiber_pool.rb:19:in `block in call'
316
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `call'
317
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `block (3 levels) in initialize'
318
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `loop'
319
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `block (2 levels) in initialize'</code></pre>
320
+ </div>
321
+
322
+ <div id="Full-Trace" style="display: none;">
323
+ <pre><code>/Users/isaac/Development/recurly/app/app/api/subscription_api.rb:23:in `block in sanitize_params'
324
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `collect'
325
+ /Users/isaac/Development/recurly/app/app/api/subscription_api.rb:22:in `sanitize_params'
326
+ /Users/isaac/Development/recurly/app/app/controllers/accounts/subscription_controller.rb:250:in `init_account_and_billing_info'
327
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:178:in `evaluate_method'
328
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:166:in `call'
329
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:225:in `call'
330
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:629:in `run_before_filters'
331
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:615:in `call_filters'
332
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:610:in `perform_action_with_filters'
333
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `block in perform_action_with_benchmark'
334
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `block in ms'
335
+ /Users/isaac/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
336
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in `ms'
337
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in `perform_action_with_benchmark'
338
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/rescue.rb:160:in `perform_action_with_rescue'
339
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/flash.rb:151:in `perform_action_with_flash'
340
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:532:in `process'
341
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/filters.rb:606:in `process_with_filters'
342
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/compass-0.10.6/lib/compass/app_integration/rails/actionpack2/action_controller.rb:7:in `process_with_compass'
343
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:391:in `process'
344
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/base.rb:386:in `call'
345
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:438:in `call'
346
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:87:in `dispatch'
347
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:121:in `_call'
348
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:130:in `block in build_middleware_stack'
349
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `call'
350
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:29:in `block in call'
351
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
352
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:9:in `cache'
353
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/query_cache.rb:28:in `call'
354
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
355
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/haml-3.0.25/lib/sass/plugin/rack.rb:41:in `call'
356
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/string_coercion.rb:25:in `call'
357
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/head.rb:9:in `call'
358
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'
359
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/params_parser.rb:15:in `call'
360
+ /Users/isaac/Development/recurly/app/lib/xml_request_check.rb:10:in `call'
361
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/session/abstract_store.rb:177:in `call'
362
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/activesupport-2.3.11/lib/active_support/cache/strategy/local_cache.rb:25:in `call'
363
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/rack.rb:27:in `call'
364
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/failsafe.rb:26:in `call'
365
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/hoptoad_notifier-2.4.6/lib/hoptoad_notifier/user_informer.rb:12:in `call'
366
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:114:in `block in call'
367
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/reloader.rb:34:in `run'
368
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/actionpack-2.3.11/lib/action_controller/dispatcher.rb:108:in `call'
369
+ /Users/isaac/Development/recurly/app/lib/rack_rails_check.rb:16:in `call'
370
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/rack/fiber_pool.rb:19:in `block in call'
371
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `call'
372
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:48:in `block (3 levels) in initialize'
373
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `loop'
374
+ /Users/isaac/.rvm/gems/ruby-1.9.2-p0@recurly-app/gems/rack-fiber_pool-0.9.1/lib/fiber_pool.rb:47:in `block (2 levels) in initialize'</code></pre>
375
+ </div>
376
+
377
+ </div>
378
+
379
+
380
+
381
+
382
+
383
+
384
+ <h2 style="margin-top: 30px">Request</h2>
385
+ <p><b>Parameters</b>: <pre>{&quot;subscription&quot;=&gt;{&quot;plan_code&quot;=&gt;&quot;paid&quot;,
386
+ &quot;quantity&quot;=&gt;1,
387
+ &quot;account&quot;=&gt;{&quot;account_code&quot;=&gt;&quot;subscription-addons-remove-1297746103&quot;,
388
+ &quot;first_name&quot;=&gt;&quot;Verena&quot;,
389
+ &quot;last_name&quot;=&gt;&quot;Test&quot;,
390
+ &quot;email&quot;=&gt;&quot;verena@test.com&quot;,
391
+ &quot;company_name&quot;=&gt;&quot;Recurly Ruby Gem&quot;,
392
+ &quot;billing_info&quot;=&gt;{&quot;first_name&quot;=&gt;&quot;Verena&quot;,
393
+ &quot;last_name&quot;=&gt;&quot;Test&quot;,
394
+ &quot;address1&quot;=&gt;&quot;123 Test St&quot;,
395
+ &quot;city&quot;=&gt;&quot;San Francisco&quot;,
396
+ &quot;state&quot;=&gt;&quot;CA&quot;,
397
+ &quot;zip&quot;=&gt;&quot;94115&quot;,
398
+ &quot;country&quot;=&gt;&quot;US&quot;,
399
+ &quot;credit_card&quot;=&gt;{&quot;number&quot;=&gt;&quot;4111111111111111&quot;,
400
+ &quot;year&quot;=&gt;2012,
401
+ &quot;month&quot;=&gt;3,
402
+ &quot;verification_value&quot;=&gt;&quot;123&quot;}},
403
+ &quot;accept_language&quot;=&gt;nil,
404
+ &quot;id&quot;=&gt;&quot;subscription-addons-remove-1297746103&quot;,
405
+ &quot;username&quot;=&gt;nil,
406
+ &quot;balance_in_cents&quot;=&gt;0,
407
+ &quot;closed&quot;=&gt;false,
408
+ &quot;hosted_login_token&quot;=&gt;&quot;d79a716084764737a1b1c6c677c94de8&quot;,
409
+ &quot;created_at&quot;=&gt;2011-03-18 18:47:50 UTC,
410
+ &quot;state&quot;=&gt;&quot;active&quot;},
411
+ &quot;add_ons&quot;=&gt;[{&quot;add_on_code&quot;=&gt;&quot;special&quot;,
412
+ &quot;quantity&quot;=&gt;1,
413
+ &quot;unit_amount&quot;=&gt;1000}],
414
+ &quot;addons&quot;=&gt;[]},
415
+ &quot;account_id&quot;=&gt;&quot;subscription-addons-remove-1297746103&quot;,
416
+ &quot;format&quot;=&gt;&quot;xml&quot;}</pre></p>
417
+
418
+ <p><a href="#" onclick="document.getElementById('session_dump').style.display='block'; return false;">Show session dump</a></p>
419
+ <div id="session_dump" style="display:none"><pre class='debug_dump'>---
420
+ </pre></div>
421
+
422
+
423
+ <h2 style="margin-top: 30px">Response</h2>
424
+ <p><b>Headers</b>: <pre>{&quot;Cache-Control&quot;=&gt;&quot;no-cache&quot;,
425
+ &quot;Content-Type&quot;=&gt;&quot;&quot;}</pre></p>
426
+
427
+
428
+
429
+ </body>
430
+ </html><script type="text/javascript">
431
+ var Hoptoad = {
432
+ host : "hoptoadapp.com",
433
+ api_key : "2de5471006eea4f5e5711302a6d2c4fc",
434
+ notice : {"action":"create","component":"accounts/subscription","error_class":"NoMethodError","environment_name":"production","file":"[PROJECT_ROOT]/app/api/subscription_api.rb","line_number":"23"},
435
+ message : 'This error exists in production!',
436
+
437
+ initialize: function() {
438
+ if (this.initialized) {
439
+ return;
440
+ } else {
441
+ this.initialized = true;
442
+ }
443
+
444
+ var data = [];
445
+
446
+ for (var key in this.notice) {
447
+ data[data.length] = 'notice[' + key + ']=' + this.notice[key];
448
+ }
449
+
450
+ data[data.length] = 'notice[api_key]=' + this.api_key;
451
+ data[data.length] = 'callback=Hoptoad.onSuccess';
452
+ data[data.length] = '_=' + (new Date()).getTime();
453
+
454
+ var head = document.getElementsByTagName('head')[0];
455
+ var done = false;
456
+
457
+ var
458
+ script = document.createElement('script');
459
+ script.src = 'http://' + this.host + '/notices_api/v1/notices/exist?' +
460
+ data.join('&');
461
+ script.type = 'text/javascript';
462
+ script.onload = script.onreadystatechange = function(){
463
+ if (!done && (!this.readyState ||
464
+ this.readyState == 'loaded' || this.readyState == 'complete')) {
465
+
466
+ done = true;
467
+
468
+ // Handle memory leak in IE. (via jQuery)
469
+ script.onload = script.onreadystatechange = null;
470
+ head.removeChild(script);
471
+ }
472
+ };
473
+
474
+ head.appendChild(script);
475
+ },
476
+
477
+ onSuccess: function(error) {
478
+ var body = document.getElementsByTagName('body')[0];
479
+ var text = document.createTextNode(this.message);
480
+ var element = document.createElement('a');
481
+
482
+ element.id = 'hoptoad';
483
+ element.href = 'http://' + error.subdomain + '.' + this.host +
484
+ '/projects/' + error.project_id + '/errors/' + error.id;
485
+ element.appendChild(text);
486
+
487
+ body.insertBefore(element, body.firstChild);
488
+
489
+ var h1 = document.getElementsByTagName('h1')[0];
490
+ var pre = document.getElementsByTagName('pre')[0];
491
+ var wrapper = document.createElement('div');
492
+
493
+ wrapper.id = 'wrapper';
494
+ wrapper.appendChild(h1);
495
+ wrapper.appendChild(pre);
496
+
497
+ body.insertBefore(wrapper, body.children[1]);
498
+ }
499
+ };
500
+
501
+ window.onload = function() {
502
+ Hoptoad.initialize.apply(Hoptoad);
503
+ };
504
+ </script>
505
+
506
+ <style type="text/css">
507
+ #hoptoad {
508
+ background: #FFF url(http://hoptoadapp.com/images/fell-off-the-toad.gif) no-repeat top right;
509
+ color: #F00;
510
+ padding: 45px 101px 45px 12px;
511
+ font-size: 14px;
512
+ font-weight: bold;
513
+ display: block;
514
+ float: right;
515
+ }
516
+
517
+ #wrapper {
518
+ padding-right: 360px;
519
+ }
520
+ </style>
228
521
 
229
522
  http_version: "1.1"