monkeywrench 0.1.5

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 (53) hide show
  1. data/README.mdown +78 -0
  2. data/Rakefile +22 -0
  3. data/lib/monkey_wrench.rb +1 -0
  4. data/lib/monkeywrench.rb +10 -0
  5. data/lib/monkeywrench/array.rb +9 -0
  6. data/lib/monkeywrench/base.rb +97 -0
  7. data/lib/monkeywrench/campaign.rb +0 -0
  8. data/lib/monkeywrench/campaign_aim.rb +0 -0
  9. data/lib/monkeywrench/campaign_stats.rb +0 -0
  10. data/lib/monkeywrench/config.rb +35 -0
  11. data/lib/monkeywrench/error.rb +104 -0
  12. data/lib/monkeywrench/hash.rb +69 -0
  13. data/lib/monkeywrench/helper.rb +0 -0
  14. data/lib/monkeywrench/list.rb +353 -0
  15. data/lib/monkeywrench/member.rb +33 -0
  16. data/lib/monkeywrench/security.rb +0 -0
  17. data/test/fixtures/api_fail.json +1 -0
  18. data/test/fixtures/campaigns_success.json +24 -0
  19. data/test/fixtures/listBatchSubscribe1000_success.json +1 -0
  20. data/test/fixtures/listBatchSubscribe10_success.json +1 -0
  21. data/test/fixtures/listBatchSubscribe4_success.json +1 -0
  22. data/test/fixtures/listBatchSubscribe5_success.json +1 -0
  23. data/test/fixtures/listBatchSubscribe_success.json +1 -0
  24. data/test/fixtures/listBatchSubscribe_with_error_success.json +1 -0
  25. data/test/fixtures/listBatchUnsubscribe_success.json +1 -0
  26. data/test/fixtures/listMemberInfo_fail.json +1 -0
  27. data/test/fixtures/listMemberInfo_success.json +1 -0
  28. data/test/fixtures/listMembers_none_success.json +1 -0
  29. data/test/fixtures/listMembers_success.json +8 -0
  30. data/test/fixtures/listSubscribe_success.json +1 -0
  31. data/test/fixtures/listUnsubscribe_success.json +0 -0
  32. data/test/fixtures/listUpdateMember_success.json +1 -0
  33. data/test/fixtures/listsEmpty_success.json +2 -0
  34. data/test/fixtures/lists_success.json +14 -0
  35. data/test/monkey_wrench/base_test.rb +55 -0
  36. data/test/monkey_wrench/base_test.rbc +1758 -0
  37. data/test/monkey_wrench/campaign_aim_test.rb +0 -0
  38. data/test/monkey_wrench/campaign_aim_test.rbc +40 -0
  39. data/test/monkey_wrench/campaign_stats_test.rb +0 -0
  40. data/test/monkey_wrench/campaign_stats_test.rbc +40 -0
  41. data/test/monkey_wrench/campaign_test.rb +0 -0
  42. data/test/monkey_wrench/campaign_test.rbc +40 -0
  43. data/test/monkey_wrench/hash_test.rb +57 -0
  44. data/test/monkey_wrench/hash_test.rbc +1636 -0
  45. data/test/monkey_wrench/helper_test.rb +0 -0
  46. data/test/monkey_wrench/helper_test.rbc +40 -0
  47. data/test/monkey_wrench/list_test.rb +405 -0
  48. data/test/monkey_wrench/list_test.rbc +10798 -0
  49. data/test/monkey_wrench/security_test.rb +0 -0
  50. data/test/monkey_wrench/security_test.rbc +40 -0
  51. data/test/test_helper.rb +66 -0
  52. data/test/test_helper.rbc +2045 -0
  53. metadata +169 -0
@@ -0,0 +1,33 @@
1
+ module MonkeyWrench
2
+ class Member
3
+ def initialize(list_member_info)
4
+ @list_member_info = list_member_info
5
+ end
6
+
7
+ def interests
8
+ if @list_member_info['merges']['INTERESTS']
9
+ @list_member_info['merges']['INTERESTS'].split(', ')
10
+ end
11
+ end
12
+
13
+ def method_missing(method, *args)
14
+ if responds_to?(method)
15
+ key_name = method.to_s
16
+ @list_member_info[key_name] || @list_member_info['merges'][key_name] || @list_member_info['merges'][key_name.upcase]
17
+ else
18
+ super
19
+ end
20
+ end
21
+
22
+ def responds_to?(method)
23
+ key_name = method.to_s
24
+ @list_member_info.has_key?(key_name) ||
25
+ @list_member_info['merges'].has_key?(key_name) ||
26
+ @list_member_info['merges'].has_key?(key_name.upcase)
27
+ end
28
+
29
+ def ==(other_member)
30
+ !@list_member_info.keys.detect{|key| send(key) != other_member.send(key)}
31
+ end
32
+ end
33
+ end
File without changes
@@ -0,0 +1 @@
1
+ {"error":"Invalid Mailchimp API Key: foada . You are accessing the wrong datacenter - your client library may not properly support our datacenter mapping scheme.","code":104}
@@ -0,0 +1,24 @@
1
+ [{
2
+ "id":"ed7838c182",
3
+ "web_id":534402,
4
+ "list_id":null,
5
+ "folder_id":0,
6
+ "title":"Untitled",
7
+ "type":"regular",
8
+ "create_time":"2009-10-06 16:18:52",
9
+ "send_time":null,
10
+ "status":"save","from_name":null,
11
+ "from_email":null,
12
+ "subject":null,
13
+ "to_email":null,
14
+ "archive_url":"http:\/\/eepurl.com\/d2JN",
15
+ "emails_sent":0,
16
+ "inline_css":"N",
17
+ "analytics":"N",
18
+ "analytics_tag":"",
19
+ "track_clicks_text":false,
20
+ "track_clicks_html":true,
21
+ "track_opens":true,
22
+ "segment_opts":[]
23
+ }
24
+ ]
@@ -0,0 +1 @@
1
+ {"success_count":1000,"error_count":0,"errors":[]}
@@ -0,0 +1 @@
1
+ {"success_count":10,"error_count":0,"errors":[]}
@@ -0,0 +1 @@
1
+ {"success_count":4,"error_count":0,"errors":[]}
@@ -0,0 +1 @@
1
+ {"success_count":5,"error_count":0,"errors":[]}
@@ -0,0 +1 @@
1
+ {"success_count":1,"error_count":0,"errors":[]}
@@ -0,0 +1 @@
1
+ {"success_count":1,"error_count":1,"errors":[{"code":502,"message":"Invalid Email Address: bademail@badmail","row":{"EMAIL_TYPE":"html","EMAIL":"bademail@badmail"}}]}
@@ -0,0 +1 @@
1
+ {"success_count":1,"error_count":0,"errors":[]}
@@ -0,0 +1 @@
1
+ {"error":"There is no record of \"asdiojasdojas@foo.com\" in the database","code":232}
@@ -0,0 +1 @@
1
+ {"id":"a58cbece83","email":"david@email.com","email_type":"html","ip_opt":"66.132.220.59","ip_signup":null,"member_rating":4,"merges":{"EMAIL":"david@email.com","MERGE0":"david@email.com","FNAME":"David","MERGE1":"David","LNAME":"Heath","MERGE2":"Heath","EXPIRYDATE":"2008-02-04","MERGE5":"2008-02-04","USERNAME":"Test1","MERGE6":"Test1","DURATION":"1","MERGE3":"1","PRODUCT":"One week subscription","MERGE4":"One week subscription","CURRENCY":"GBP","MERGE7":"GBP","ROLLING":"false","MERGE8":"false","EXPIRED":"true","MERGE9":"true","TRIAL":"","MERGE10":"","MMERGE11":"","MERGE11":"","MMERGE12":"","MERGE12":"","MMERGE13":"","MERGE13":"","MMERGE14":"","MERGE14":"","TRACKER":"","MERGE15":"","SUBSTYPE":"","MERGE16":"","FIRSTEBOOK":"","MERGE17":"","MMERGE18":"","MERGE18":"","INTERESTS":"freetrial, tutorials"},"status":"subscribed","timestamp":"2009-11-16 14:11:57","lists":{"699791bff9":"unsubscribed"}}
@@ -0,0 +1,8 @@
1
+ [{
2
+ "timestamp":"2009-11-12 15:46:20",
3
+ "email":"david@email.com"
4
+ },
5
+ {"timestamp":"2009-11-12 15:52:52",
6
+ "email":"julie@email.com"
7
+ }
8
+ ]
@@ -0,0 +1,14 @@
1
+ [
2
+ {"id":"my-list-id",
3
+ "web_id":12345 ,
4
+ "name":"A test list",
5
+ "date_created":"2009-09-10 14:14:06",
6
+ "member_count":5,
7
+ "unsubscribe_count":0,
8
+ "cleaned_count":0,
9
+ "email_type_option":false,
10
+ "default_from_name":"John Smith",
11
+ "default_from_email":"johnsmith@acmecorp.com",
12
+ "default_subject":"",
13
+ "default_language":"eng"}
14
+ ]
@@ -0,0 +1,55 @@
1
+ $:.unshift File.expand_path("..", File.dirname(__FILE__))
2
+ require "test_helper"
3
+
4
+ class MonkeyWrench::BaseTest < Test::Unit::TestCase
5
+
6
+ context "making an HTTP GET" do
7
+ should "retry if HTTP GET times out" do
8
+ retries = sequence('retries')
9
+ response = mock('')
10
+ response.stubs(:parsed_response).returns("the response")
11
+ MonkeyWrench::Base.stubs(:base_uri).returns('http://example.com');
12
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
13
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
14
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).returns(response)
15
+ assert_equal MonkeyWrench::Base.get({}), 'the response'
16
+ end
17
+
18
+ should "rethrow Timeout::Error if retry limit exceeded" do
19
+ retries = sequence('retries')
20
+ response = mock('')
21
+ response.stubs(:parsed_response).returns("the response")
22
+ MonkeyWrench::Base.stubs(:base_uri).returns('http://example.com');
23
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
24
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
25
+ assert_raise Timeout::Error do
26
+ MonkeyWrench::Base.get({}, :retry_limit => 2)
27
+ end
28
+ end
29
+ end
30
+
31
+ context "making an HTTP POST" do
32
+ should "retry if HTTP POST times out" do
33
+ retries = sequence('retries')
34
+ response = mock('')
35
+ response.stubs(:parsed_response).returns("the response")
36
+ MonkeyWrench::Base.stubs(:base_uri).returns('http://example.com');
37
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
38
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
39
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).returns(response)
40
+ assert_equal MonkeyWrench::Base.post({}), 'the response'
41
+ end
42
+
43
+ should "rethrow Timeout::Error if retry limit exceeded" do
44
+ retries = sequence('retries')
45
+ response = mock('')
46
+ response.stubs(:parsed_response).returns("the response")
47
+ MonkeyWrench::Base.stubs(:base_uri).returns('http://example.com');
48
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
49
+ HTTParty::Request.any_instance.expects(:perform).in_sequence(retries).raises(Timeout::Error)
50
+ assert_raise Timeout::Error do
51
+ MonkeyWrench::Base.post({}, :retry_limit => 2)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,1758 @@
1
+ !RBIX
2
+ 0
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 77
13
+ 99
14
+ 43
15
+ 0
16
+ 7
17
+ 1
18
+ 49
19
+ 2
20
+ 1
21
+ 45
22
+ 3
23
+ 4
24
+ 7
25
+ 5
26
+ 64
27
+ 45
28
+ 3
29
+ 6
30
+ 65
31
+ 49
32
+ 7
33
+ 0
34
+ 49
35
+ 8
36
+ 1
37
+ 49
38
+ 9
39
+ 2
40
+ 49
41
+ 10
42
+ 1
43
+ 15
44
+ 5
45
+ 7
46
+ 11
47
+ 64
48
+ 47
49
+ 49
50
+ 12
51
+ 1
52
+ 15
53
+ 99
54
+ 7
55
+ 13
56
+ 45
57
+ 14
58
+ 15
59
+ 43
60
+ 16
61
+ 43
62
+ 17
63
+ 45
64
+ 18
65
+ 19
66
+ 49
67
+ 20
68
+ 3
69
+ 13
70
+ 99
71
+ 12
72
+ 7
73
+ 21
74
+ 12
75
+ 7
76
+ 22
77
+ 12
78
+ 65
79
+ 12
80
+ 49
81
+ 23
82
+ 4
83
+ 15
84
+ 49
85
+ 21
86
+ 0
87
+ 15
88
+ 2
89
+ 11
90
+ I
91
+ 6
92
+ I
93
+ 0
94
+ I
95
+ 0
96
+ I
97
+ 0
98
+ n
99
+ p
100
+ 24
101
+ x
102
+ 7
103
+ Globals
104
+ x
105
+ 2
106
+ $:
107
+ x
108
+ 2
109
+ []
110
+ x
111
+ 4
112
+ File
113
+ n
114
+ s
115
+ 2
116
+ ..
117
+ n
118
+ x
119
+ 11
120
+ active_path
121
+ x
122
+ 7
123
+ dirname
124
+ x
125
+ 11
126
+ expand_path
127
+ x
128
+ 7
129
+ unshift
130
+ s
131
+ 11
132
+ test_helper
133
+ x
134
+ 7
135
+ require
136
+ x
137
+ 8
138
+ BaseTest
139
+ x
140
+ 4
141
+ Test
142
+ n
143
+ x
144
+ 4
145
+ Unit
146
+ x
147
+ 8
148
+ TestCase
149
+ x
150
+ 12
151
+ MonkeyWrench
152
+ n
153
+ x
154
+ 16
155
+ open_class_under
156
+ x
157
+ 14
158
+ __class_init__
159
+ M
160
+ 1
161
+ n
162
+ n
163
+ x
164
+ 8
165
+ BaseTest
166
+ i
167
+ 24
168
+ 5
169
+ 66
170
+ 5
171
+ 7
172
+ 0
173
+ 64
174
+ 56
175
+ 1
176
+ 47
177
+ 50
178
+ 2
179
+ 1
180
+ 15
181
+ 5
182
+ 7
183
+ 3
184
+ 64
185
+ 56
186
+ 4
187
+ 47
188
+ 50
189
+ 2
190
+ 1
191
+ 11
192
+ I
193
+ 3
194
+ I
195
+ 0
196
+ I
197
+ 0
198
+ I
199
+ 0
200
+ n
201
+ p
202
+ 5
203
+ s
204
+ 18
205
+ making an HTTP GET
206
+ M
207
+ 1
208
+ p
209
+ 2
210
+ x
211
+ 9
212
+ for_block
213
+ t
214
+ n
215
+ x
216
+ 8
217
+ BaseTest
218
+ i
219
+ 22
220
+ 5
221
+ 7
222
+ 0
223
+ 64
224
+ 56
225
+ 1
226
+ 47
227
+ 50
228
+ 2
229
+ 1
230
+ 15
231
+ 5
232
+ 7
233
+ 3
234
+ 64
235
+ 56
236
+ 4
237
+ 47
238
+ 50
239
+ 2
240
+ 1
241
+ 11
242
+ I
243
+ 4
244
+ I
245
+ 0
246
+ I
247
+ 0
248
+ I
249
+ 0
250
+ I
251
+ -2
252
+ p
253
+ 5
254
+ s
255
+ 27
256
+ retry if HTTP GET times out
257
+ M
258
+ 1
259
+ p
260
+ 2
261
+ x
262
+ 9
263
+ for_block
264
+ t
265
+ n
266
+ x
267
+ 8
268
+ BaseTest
269
+ i
270
+ 155
271
+ 5
272
+ 7
273
+ 0
274
+ 64
275
+ 47
276
+ 49
277
+ 1
278
+ 1
279
+ 19
280
+ 0
281
+ 15
282
+ 5
283
+ 7
284
+ 2
285
+ 64
286
+ 47
287
+ 49
288
+ 3
289
+ 1
290
+ 19
291
+ 1
292
+ 15
293
+ 20
294
+ 1
295
+ 7
296
+ 4
297
+ 49
298
+ 5
299
+ 1
300
+ 7
301
+ 6
302
+ 64
303
+ 49
304
+ 7
305
+ 1
306
+ 15
307
+ 45
308
+ 8
309
+ 9
310
+ 43
311
+ 10
312
+ 7
313
+ 11
314
+ 49
315
+ 5
316
+ 1
317
+ 7
318
+ 12
319
+ 64
320
+ 49
321
+ 7
322
+ 1
323
+ 15
324
+ 45
325
+ 13
326
+ 14
327
+ 43
328
+ 15
329
+ 49
330
+ 16
331
+ 0
332
+ 7
333
+ 17
334
+ 49
335
+ 18
336
+ 1
337
+ 20
338
+ 0
339
+ 49
340
+ 19
341
+ 1
342
+ 45
343
+ 20
344
+ 21
345
+ 43
346
+ 22
347
+ 49
348
+ 23
349
+ 1
350
+ 15
351
+ 45
352
+ 13
353
+ 24
354
+ 43
355
+ 15
356
+ 49
357
+ 16
358
+ 0
359
+ 7
360
+ 17
361
+ 49
362
+ 18
363
+ 1
364
+ 20
365
+ 0
366
+ 49
367
+ 19
368
+ 1
369
+ 45
370
+ 20
371
+ 25
372
+ 43
373
+ 22
374
+ 49
375
+ 23
376
+ 1
377
+ 15
378
+ 45
379
+ 13
380
+ 26
381
+ 43
382
+ 15
383
+ 49
384
+ 16
385
+ 0
386
+ 7
387
+ 17
388
+ 49
389
+ 18
390
+ 1
391
+ 20
392
+ 0
393
+ 49
394
+ 19
395
+ 1
396
+ 20
397
+ 1
398
+ 49
399
+ 7
400
+ 1
401
+ 15
402
+ 5
403
+ 45
404
+ 8
405
+ 27
406
+ 43
407
+ 10
408
+ 44
409
+ 43
410
+ 28
411
+ 78
412
+ 49
413
+ 29
414
+ 1
415
+ 49
416
+ 30
417
+ 1
418
+ 7
419
+ 6
420
+ 64
421
+ 47
422
+ 49
423
+ 31
424
+ 2
425
+ 11
426
+ I
427
+ 7
428
+ I
429
+ 2
430
+ I
431
+ 0
432
+ I
433
+ 0
434
+ I
435
+ -2
436
+ p
437
+ 32
438
+ s
439
+ 7
440
+ retries
441
+ x
442
+ 8
443
+ sequence
444
+ s
445
+ 0
446
+
447
+ x
448
+ 4
449
+ mock
450
+ x
451
+ 15
452
+ parsed_response
453
+ x
454
+ 5
455
+ stubs
456
+ s
457
+ 12
458
+ the response
459
+ x
460
+ 7
461
+ returns
462
+ x
463
+ 12
464
+ MonkeyWrench
465
+ n
466
+ x
467
+ 4
468
+ Base
469
+ x
470
+ 8
471
+ base_uri
472
+ s
473
+ 18
474
+ http://example.com
475
+ x
476
+ 8
477
+ HTTParty
478
+ n
479
+ x
480
+ 7
481
+ Request
482
+ x
483
+ 12
484
+ any_instance
485
+ x
486
+ 7
487
+ perform
488
+ x
489
+ 7
490
+ expects
491
+ x
492
+ 11
493
+ in_sequence
494
+ x
495
+ 7
496
+ Timeout
497
+ n
498
+ x
499
+ 5
500
+ Error
501
+ x
502
+ 6
503
+ raises
504
+ n
505
+ n
506
+ n
507
+ n
508
+ x
509
+ 4
510
+ Hash
511
+ x
512
+ 16
513
+ new_from_literal
514
+ x
515
+ 3
516
+ get
517
+ x
518
+ 12
519
+ assert_equal
520
+ p
521
+ 19
522
+ I
523
+ 0
524
+ I
525
+ 7
526
+ I
527
+ 0
528
+ I
529
+ 8
530
+ I
531
+ b
532
+ I
533
+ 9
534
+ I
535
+ 16
536
+ I
537
+ a
538
+ I
539
+ 24
540
+ I
541
+ b
542
+ I
543
+ 35
544
+ I
545
+ c
546
+ I
547
+ 50
548
+ I
549
+ d
550
+ I
551
+ 6b
552
+ I
553
+ e
554
+ I
555
+ 83
556
+ I
557
+ f
558
+ I
559
+ 9b
560
+ x
561
+ 82
562
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
563
+ p
564
+ 2
565
+ x
566
+ 7
567
+ retries
568
+ x
569
+ 8
570
+ response
571
+ x
572
+ 6
573
+ should
574
+ s
575
+ 46
576
+ rethrow Timeout::Error if retry limit exceeded
577
+ M
578
+ 1
579
+ p
580
+ 2
581
+ x
582
+ 9
583
+ for_block
584
+ t
585
+ n
586
+ x
587
+ 8
588
+ BaseTest
589
+ i
590
+ 120
591
+ 5
592
+ 7
593
+ 0
594
+ 64
595
+ 47
596
+ 49
597
+ 1
598
+ 1
599
+ 19
600
+ 0
601
+ 15
602
+ 5
603
+ 7
604
+ 2
605
+ 64
606
+ 47
607
+ 49
608
+ 3
609
+ 1
610
+ 19
611
+ 1
612
+ 15
613
+ 20
614
+ 1
615
+ 7
616
+ 4
617
+ 49
618
+ 5
619
+ 1
620
+ 7
621
+ 6
622
+ 64
623
+ 49
624
+ 7
625
+ 1
626
+ 15
627
+ 45
628
+ 8
629
+ 9
630
+ 43
631
+ 10
632
+ 7
633
+ 11
634
+ 49
635
+ 5
636
+ 1
637
+ 7
638
+ 12
639
+ 64
640
+ 49
641
+ 7
642
+ 1
643
+ 15
644
+ 45
645
+ 13
646
+ 14
647
+ 43
648
+ 15
649
+ 49
650
+ 16
651
+ 0
652
+ 7
653
+ 17
654
+ 49
655
+ 18
656
+ 1
657
+ 20
658
+ 0
659
+ 49
660
+ 19
661
+ 1
662
+ 45
663
+ 20
664
+ 21
665
+ 43
666
+ 22
667
+ 49
668
+ 23
669
+ 1
670
+ 15
671
+ 45
672
+ 13
673
+ 24
674
+ 43
675
+ 15
676
+ 49
677
+ 16
678
+ 0
679
+ 7
680
+ 17
681
+ 49
682
+ 18
683
+ 1
684
+ 20
685
+ 0
686
+ 49
687
+ 19
688
+ 1
689
+ 45
690
+ 20
691
+ 25
692
+ 43
693
+ 22
694
+ 49
695
+ 23
696
+ 1
697
+ 15
698
+ 5
699
+ 45
700
+ 20
701
+ 26
702
+ 43
703
+ 22
704
+ 56
705
+ 27
706
+ 47
707
+ 50
708
+ 28
709
+ 1
710
+ 11
711
+ I
712
+ 6
713
+ I
714
+ 2
715
+ I
716
+ 0
717
+ I
718
+ 0
719
+ I
720
+ -2
721
+ p
722
+ 29
723
+ s
724
+ 7
725
+ retries
726
+ x
727
+ 8
728
+ sequence
729
+ s
730
+ 0
731
+
732
+ x
733
+ 4
734
+ mock
735
+ x
736
+ 15
737
+ parsed_response
738
+ x
739
+ 5
740
+ stubs
741
+ s
742
+ 12
743
+ the response
744
+ x
745
+ 7
746
+ returns
747
+ x
748
+ 12
749
+ MonkeyWrench
750
+ n
751
+ x
752
+ 4
753
+ Base
754
+ x
755
+ 8
756
+ base_uri
757
+ s
758
+ 18
759
+ http://example.com
760
+ x
761
+ 8
762
+ HTTParty
763
+ n
764
+ x
765
+ 7
766
+ Request
767
+ x
768
+ 12
769
+ any_instance
770
+ x
771
+ 7
772
+ perform
773
+ x
774
+ 7
775
+ expects
776
+ x
777
+ 11
778
+ in_sequence
779
+ x
780
+ 7
781
+ Timeout
782
+ n
783
+ x
784
+ 5
785
+ Error
786
+ x
787
+ 6
788
+ raises
789
+ n
790
+ n
791
+ n
792
+ M
793
+ 1
794
+ p
795
+ 2
796
+ x
797
+ 9
798
+ for_block
799
+ t
800
+ n
801
+ x
802
+ 8
803
+ BaseTest
804
+ i
805
+ 31
806
+ 45
807
+ 0
808
+ 1
809
+ 43
810
+ 2
811
+ 44
812
+ 43
813
+ 3
814
+ 78
815
+ 49
816
+ 4
817
+ 1
818
+ 44
819
+ 43
820
+ 3
821
+ 79
822
+ 49
823
+ 4
824
+ 1
825
+ 13
826
+ 7
827
+ 5
828
+ 80
829
+ 49
830
+ 6
831
+ 2
832
+ 15
833
+ 49
834
+ 7
835
+ 2
836
+ 11
837
+ I
838
+ 7
839
+ I
840
+ 0
841
+ I
842
+ 0
843
+ I
844
+ 0
845
+ I
846
+ -2
847
+ p
848
+ 8
849
+ x
850
+ 12
851
+ MonkeyWrench
852
+ n
853
+ x
854
+ 4
855
+ Base
856
+ x
857
+ 4
858
+ Hash
859
+ x
860
+ 16
861
+ new_from_literal
862
+ x
863
+ 11
864
+ retry_limit
865
+ x
866
+ 3
867
+ []=
868
+ x
869
+ 3
870
+ get
871
+ p
872
+ 5
873
+ I
874
+ 0
875
+ I
876
+ 19
877
+ I
878
+ 0
879
+ I
880
+ 1a
881
+ I
882
+ 1f
883
+ x
884
+ 82
885
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
886
+ p
887
+ 0
888
+ x
889
+ 12
890
+ assert_raise
891
+ p
892
+ 17
893
+ I
894
+ 0
895
+ I
896
+ 12
897
+ I
898
+ 0
899
+ I
900
+ 13
901
+ I
902
+ b
903
+ I
904
+ 14
905
+ I
906
+ 16
907
+ I
908
+ 15
909
+ I
910
+ 24
911
+ I
912
+ 16
913
+ I
914
+ 35
915
+ I
916
+ 17
917
+ I
918
+ 50
919
+ I
920
+ 18
921
+ I
922
+ 6b
923
+ I
924
+ 19
925
+ I
926
+ 78
927
+ x
928
+ 82
929
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
930
+ p
931
+ 2
932
+ x
933
+ 7
934
+ retries
935
+ x
936
+ 8
937
+ response
938
+ p
939
+ 7
940
+ I
941
+ 0
942
+ I
943
+ 6
944
+ I
945
+ 0
946
+ I
947
+ 7
948
+ I
949
+ b
950
+ I
951
+ 12
952
+ I
953
+ 16
954
+ x
955
+ 82
956
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
957
+ p
958
+ 0
959
+ x
960
+ 7
961
+ context
962
+ s
963
+ 19
964
+ making an HTTP POST
965
+ M
966
+ 1
967
+ p
968
+ 2
969
+ x
970
+ 9
971
+ for_block
972
+ t
973
+ n
974
+ x
975
+ 8
976
+ BaseTest
977
+ i
978
+ 22
979
+ 5
980
+ 7
981
+ 0
982
+ 64
983
+ 56
984
+ 1
985
+ 47
986
+ 50
987
+ 2
988
+ 1
989
+ 15
990
+ 5
991
+ 7
992
+ 3
993
+ 64
994
+ 56
995
+ 4
996
+ 47
997
+ 50
998
+ 2
999
+ 1
1000
+ 11
1001
+ I
1002
+ 4
1003
+ I
1004
+ 0
1005
+ I
1006
+ 0
1007
+ I
1008
+ 0
1009
+ I
1010
+ -2
1011
+ p
1012
+ 5
1013
+ s
1014
+ 28
1015
+ retry if HTTP POST times out
1016
+ M
1017
+ 1
1018
+ p
1019
+ 2
1020
+ x
1021
+ 9
1022
+ for_block
1023
+ t
1024
+ n
1025
+ x
1026
+ 8
1027
+ BaseTest
1028
+ i
1029
+ 155
1030
+ 5
1031
+ 7
1032
+ 0
1033
+ 64
1034
+ 47
1035
+ 49
1036
+ 1
1037
+ 1
1038
+ 19
1039
+ 0
1040
+ 15
1041
+ 5
1042
+ 7
1043
+ 2
1044
+ 64
1045
+ 47
1046
+ 49
1047
+ 3
1048
+ 1
1049
+ 19
1050
+ 1
1051
+ 15
1052
+ 20
1053
+ 1
1054
+ 7
1055
+ 4
1056
+ 49
1057
+ 5
1058
+ 1
1059
+ 7
1060
+ 6
1061
+ 64
1062
+ 49
1063
+ 7
1064
+ 1
1065
+ 15
1066
+ 45
1067
+ 8
1068
+ 9
1069
+ 43
1070
+ 10
1071
+ 7
1072
+ 11
1073
+ 49
1074
+ 5
1075
+ 1
1076
+ 7
1077
+ 12
1078
+ 64
1079
+ 49
1080
+ 7
1081
+ 1
1082
+ 15
1083
+ 45
1084
+ 13
1085
+ 14
1086
+ 43
1087
+ 15
1088
+ 49
1089
+ 16
1090
+ 0
1091
+ 7
1092
+ 17
1093
+ 49
1094
+ 18
1095
+ 1
1096
+ 20
1097
+ 0
1098
+ 49
1099
+ 19
1100
+ 1
1101
+ 45
1102
+ 20
1103
+ 21
1104
+ 43
1105
+ 22
1106
+ 49
1107
+ 23
1108
+ 1
1109
+ 15
1110
+ 45
1111
+ 13
1112
+ 24
1113
+ 43
1114
+ 15
1115
+ 49
1116
+ 16
1117
+ 0
1118
+ 7
1119
+ 17
1120
+ 49
1121
+ 18
1122
+ 1
1123
+ 20
1124
+ 0
1125
+ 49
1126
+ 19
1127
+ 1
1128
+ 45
1129
+ 20
1130
+ 25
1131
+ 43
1132
+ 22
1133
+ 49
1134
+ 23
1135
+ 1
1136
+ 15
1137
+ 45
1138
+ 13
1139
+ 26
1140
+ 43
1141
+ 15
1142
+ 49
1143
+ 16
1144
+ 0
1145
+ 7
1146
+ 17
1147
+ 49
1148
+ 18
1149
+ 1
1150
+ 20
1151
+ 0
1152
+ 49
1153
+ 19
1154
+ 1
1155
+ 20
1156
+ 1
1157
+ 49
1158
+ 7
1159
+ 1
1160
+ 15
1161
+ 5
1162
+ 45
1163
+ 8
1164
+ 27
1165
+ 43
1166
+ 10
1167
+ 44
1168
+ 43
1169
+ 28
1170
+ 78
1171
+ 49
1172
+ 29
1173
+ 1
1174
+ 49
1175
+ 30
1176
+ 1
1177
+ 7
1178
+ 6
1179
+ 64
1180
+ 47
1181
+ 49
1182
+ 31
1183
+ 2
1184
+ 11
1185
+ I
1186
+ 7
1187
+ I
1188
+ 2
1189
+ I
1190
+ 0
1191
+ I
1192
+ 0
1193
+ I
1194
+ -2
1195
+ p
1196
+ 32
1197
+ s
1198
+ 7
1199
+ retries
1200
+ x
1201
+ 8
1202
+ sequence
1203
+ s
1204
+ 0
1205
+
1206
+ x
1207
+ 4
1208
+ mock
1209
+ x
1210
+ 15
1211
+ parsed_response
1212
+ x
1213
+ 5
1214
+ stubs
1215
+ s
1216
+ 12
1217
+ the response
1218
+ x
1219
+ 7
1220
+ returns
1221
+ x
1222
+ 12
1223
+ MonkeyWrench
1224
+ n
1225
+ x
1226
+ 4
1227
+ Base
1228
+ x
1229
+ 8
1230
+ base_uri
1231
+ s
1232
+ 18
1233
+ http://example.com
1234
+ x
1235
+ 8
1236
+ HTTParty
1237
+ n
1238
+ x
1239
+ 7
1240
+ Request
1241
+ x
1242
+ 12
1243
+ any_instance
1244
+ x
1245
+ 7
1246
+ perform
1247
+ x
1248
+ 7
1249
+ expects
1250
+ x
1251
+ 11
1252
+ in_sequence
1253
+ x
1254
+ 7
1255
+ Timeout
1256
+ n
1257
+ x
1258
+ 5
1259
+ Error
1260
+ x
1261
+ 6
1262
+ raises
1263
+ n
1264
+ n
1265
+ n
1266
+ n
1267
+ x
1268
+ 4
1269
+ Hash
1270
+ x
1271
+ 16
1272
+ new_from_literal
1273
+ x
1274
+ 4
1275
+ post
1276
+ x
1277
+ 12
1278
+ assert_equal
1279
+ p
1280
+ 19
1281
+ I
1282
+ 0
1283
+ I
1284
+ 20
1285
+ I
1286
+ 0
1287
+ I
1288
+ 21
1289
+ I
1290
+ b
1291
+ I
1292
+ 22
1293
+ I
1294
+ 16
1295
+ I
1296
+ 23
1297
+ I
1298
+ 24
1299
+ I
1300
+ 24
1301
+ I
1302
+ 35
1303
+ I
1304
+ 25
1305
+ I
1306
+ 50
1307
+ I
1308
+ 26
1309
+ I
1310
+ 6b
1311
+ I
1312
+ 27
1313
+ I
1314
+ 83
1315
+ I
1316
+ 28
1317
+ I
1318
+ 9b
1319
+ x
1320
+ 82
1321
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
1322
+ p
1323
+ 2
1324
+ x
1325
+ 7
1326
+ retries
1327
+ x
1328
+ 8
1329
+ response
1330
+ x
1331
+ 6
1332
+ should
1333
+ s
1334
+ 46
1335
+ rethrow Timeout::Error if retry limit exceeded
1336
+ M
1337
+ 1
1338
+ p
1339
+ 2
1340
+ x
1341
+ 9
1342
+ for_block
1343
+ t
1344
+ n
1345
+ x
1346
+ 8
1347
+ BaseTest
1348
+ i
1349
+ 120
1350
+ 5
1351
+ 7
1352
+ 0
1353
+ 64
1354
+ 47
1355
+ 49
1356
+ 1
1357
+ 1
1358
+ 19
1359
+ 0
1360
+ 15
1361
+ 5
1362
+ 7
1363
+ 2
1364
+ 64
1365
+ 47
1366
+ 49
1367
+ 3
1368
+ 1
1369
+ 19
1370
+ 1
1371
+ 15
1372
+ 20
1373
+ 1
1374
+ 7
1375
+ 4
1376
+ 49
1377
+ 5
1378
+ 1
1379
+ 7
1380
+ 6
1381
+ 64
1382
+ 49
1383
+ 7
1384
+ 1
1385
+ 15
1386
+ 45
1387
+ 8
1388
+ 9
1389
+ 43
1390
+ 10
1391
+ 7
1392
+ 11
1393
+ 49
1394
+ 5
1395
+ 1
1396
+ 7
1397
+ 12
1398
+ 64
1399
+ 49
1400
+ 7
1401
+ 1
1402
+ 15
1403
+ 45
1404
+ 13
1405
+ 14
1406
+ 43
1407
+ 15
1408
+ 49
1409
+ 16
1410
+ 0
1411
+ 7
1412
+ 17
1413
+ 49
1414
+ 18
1415
+ 1
1416
+ 20
1417
+ 0
1418
+ 49
1419
+ 19
1420
+ 1
1421
+ 45
1422
+ 20
1423
+ 21
1424
+ 43
1425
+ 22
1426
+ 49
1427
+ 23
1428
+ 1
1429
+ 15
1430
+ 45
1431
+ 13
1432
+ 24
1433
+ 43
1434
+ 15
1435
+ 49
1436
+ 16
1437
+ 0
1438
+ 7
1439
+ 17
1440
+ 49
1441
+ 18
1442
+ 1
1443
+ 20
1444
+ 0
1445
+ 49
1446
+ 19
1447
+ 1
1448
+ 45
1449
+ 20
1450
+ 25
1451
+ 43
1452
+ 22
1453
+ 49
1454
+ 23
1455
+ 1
1456
+ 15
1457
+ 5
1458
+ 45
1459
+ 20
1460
+ 26
1461
+ 43
1462
+ 22
1463
+ 56
1464
+ 27
1465
+ 47
1466
+ 50
1467
+ 28
1468
+ 1
1469
+ 11
1470
+ I
1471
+ 6
1472
+ I
1473
+ 2
1474
+ I
1475
+ 0
1476
+ I
1477
+ 0
1478
+ I
1479
+ -2
1480
+ p
1481
+ 29
1482
+ s
1483
+ 7
1484
+ retries
1485
+ x
1486
+ 8
1487
+ sequence
1488
+ s
1489
+ 0
1490
+
1491
+ x
1492
+ 4
1493
+ mock
1494
+ x
1495
+ 15
1496
+ parsed_response
1497
+ x
1498
+ 5
1499
+ stubs
1500
+ s
1501
+ 12
1502
+ the response
1503
+ x
1504
+ 7
1505
+ returns
1506
+ x
1507
+ 12
1508
+ MonkeyWrench
1509
+ n
1510
+ x
1511
+ 4
1512
+ Base
1513
+ x
1514
+ 8
1515
+ base_uri
1516
+ s
1517
+ 18
1518
+ http://example.com
1519
+ x
1520
+ 8
1521
+ HTTParty
1522
+ n
1523
+ x
1524
+ 7
1525
+ Request
1526
+ x
1527
+ 12
1528
+ any_instance
1529
+ x
1530
+ 7
1531
+ perform
1532
+ x
1533
+ 7
1534
+ expects
1535
+ x
1536
+ 11
1537
+ in_sequence
1538
+ x
1539
+ 7
1540
+ Timeout
1541
+ n
1542
+ x
1543
+ 5
1544
+ Error
1545
+ x
1546
+ 6
1547
+ raises
1548
+ n
1549
+ n
1550
+ n
1551
+ M
1552
+ 1
1553
+ p
1554
+ 2
1555
+ x
1556
+ 9
1557
+ for_block
1558
+ t
1559
+ n
1560
+ x
1561
+ 8
1562
+ BaseTest
1563
+ i
1564
+ 31
1565
+ 45
1566
+ 0
1567
+ 1
1568
+ 43
1569
+ 2
1570
+ 44
1571
+ 43
1572
+ 3
1573
+ 78
1574
+ 49
1575
+ 4
1576
+ 1
1577
+ 44
1578
+ 43
1579
+ 3
1580
+ 79
1581
+ 49
1582
+ 4
1583
+ 1
1584
+ 13
1585
+ 7
1586
+ 5
1587
+ 80
1588
+ 49
1589
+ 6
1590
+ 2
1591
+ 15
1592
+ 49
1593
+ 7
1594
+ 2
1595
+ 11
1596
+ I
1597
+ 7
1598
+ I
1599
+ 0
1600
+ I
1601
+ 0
1602
+ I
1603
+ 0
1604
+ I
1605
+ -2
1606
+ p
1607
+ 8
1608
+ x
1609
+ 12
1610
+ MonkeyWrench
1611
+ n
1612
+ x
1613
+ 4
1614
+ Base
1615
+ x
1616
+ 4
1617
+ Hash
1618
+ x
1619
+ 16
1620
+ new_from_literal
1621
+ x
1622
+ 11
1623
+ retry_limit
1624
+ x
1625
+ 3
1626
+ []=
1627
+ x
1628
+ 4
1629
+ post
1630
+ p
1631
+ 5
1632
+ I
1633
+ 0
1634
+ I
1635
+ 32
1636
+ I
1637
+ 0
1638
+ I
1639
+ 33
1640
+ I
1641
+ 1f
1642
+ x
1643
+ 82
1644
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
1645
+ p
1646
+ 0
1647
+ x
1648
+ 12
1649
+ assert_raise
1650
+ p
1651
+ 17
1652
+ I
1653
+ 0
1654
+ I
1655
+ 2b
1656
+ I
1657
+ 0
1658
+ I
1659
+ 2c
1660
+ I
1661
+ b
1662
+ I
1663
+ 2d
1664
+ I
1665
+ 16
1666
+ I
1667
+ 2e
1668
+ I
1669
+ 24
1670
+ I
1671
+ 2f
1672
+ I
1673
+ 35
1674
+ I
1675
+ 30
1676
+ I
1677
+ 50
1678
+ I
1679
+ 31
1680
+ I
1681
+ 6b
1682
+ I
1683
+ 32
1684
+ I
1685
+ 78
1686
+ x
1687
+ 82
1688
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
1689
+ p
1690
+ 2
1691
+ x
1692
+ 7
1693
+ retries
1694
+ x
1695
+ 8
1696
+ response
1697
+ p
1698
+ 7
1699
+ I
1700
+ 0
1701
+ I
1702
+ 1f
1703
+ I
1704
+ 0
1705
+ I
1706
+ 20
1707
+ I
1708
+ b
1709
+ I
1710
+ 2b
1711
+ I
1712
+ 16
1713
+ x
1714
+ 82
1715
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
1716
+ p
1717
+ 0
1718
+ p
1719
+ 5
1720
+ I
1721
+ 2
1722
+ I
1723
+ 6
1724
+ I
1725
+ d
1726
+ I
1727
+ 1f
1728
+ I
1729
+ 18
1730
+ x
1731
+ 82
1732
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
1733
+ p
1734
+ 0
1735
+ x
1736
+ 13
1737
+ attach_method
1738
+ p
1739
+ 7
1740
+ I
1741
+ 0
1742
+ I
1743
+ 1
1744
+ I
1745
+ 1f
1746
+ I
1747
+ 2
1748
+ I
1749
+ 28
1750
+ I
1751
+ 4
1752
+ I
1753
+ 4d
1754
+ x
1755
+ 82
1756
+ /Volumes/Personal/Documents/glenn-dev/monkeywrench/test/monkey_wrench/base_test.rb
1757
+ p
1758
+ 0