sucker 1.3.0.pre.2 → 1.3.0.pre.3

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 (45) hide show
  1. data/README.md +32 -19
  2. data/lib/sucker.rb +0 -1
  3. data/lib/sucker.rbc +281 -0
  4. data/lib/sucker/parameters.rb +4 -8
  5. data/lib/sucker/parameters.rbc +723 -0
  6. data/lib/sucker/request.rb +1 -3
  7. data/lib/sucker/request.rbc +2674 -0
  8. data/lib/sucker/response.rb +9 -32
  9. data/lib/sucker/response.rbc +1319 -0
  10. data/lib/sucker/response/hash.rb +46 -0
  11. data/lib/sucker/version.rb +2 -4
  12. data/lib/sucker/version.rbc +130 -0
  13. data/spec/spec_helper.rb +4 -4
  14. data/spec/spec_helper.rbc +230 -0
  15. data/spec/sucker/parameters_spec.rbc +1476 -0
  16. data/spec/sucker/request_spec.rb +0 -11
  17. data/spec/sucker/request_spec.rbc +2642 -0
  18. data/spec/sucker/response/hash_spec.rb +43 -0
  19. data/spec/sucker/response_spec.rb +3 -18
  20. data/spec/sucker/response_spec.rbc +2854 -0
  21. data/spec/sucker_spec.rbc +287 -0
  22. data/spec/support/amazon_credentials.rbc +154 -0
  23. data/spec/support/asins.rbc +335 -0
  24. data/spec/support/vcr.rbc +356 -0
  25. metadata +36 -52
  26. data/spec/fixtures/cassette_library/067972110x.yml +0 -26
  27. data/spec/fixtures/cassette_library/integration/alternate_versions.yml +0 -26
  28. data/spec/fixtures/cassette_library/integration/errors.yml +0 -26
  29. data/spec/fixtures/cassette_library/integration/france.yml +0 -26
  30. data/spec/fixtures/cassette_library/integration/images.yml +0 -26
  31. data/spec/fixtures/cassette_library/integration/item_lookup/multiple.yml +0 -26
  32. data/spec/fixtures/cassette_library/integration/item_lookup/single.yml +0 -26
  33. data/spec/fixtures/cassette_library/integration/item_search.yml +0 -26
  34. data/spec/fixtures/cassette_library/integration/japan.yml +0 -26
  35. data/spec/fixtures/cassette_library/integration/keyword_search.yml +0 -26
  36. data/spec/fixtures/cassette_library/integration/kindle.yml +0 -26
  37. data/spec/fixtures/cassette_library/integration/kindle_2.yml +0 -26
  38. data/spec/fixtures/cassette_library/integration/multiple_locales.yml +0 -151
  39. data/spec/fixtures/cassette_library/integration/power_search.yml +0 -26
  40. data/spec/fixtures/cassette_library/integration/related_items/child.yml +0 -26
  41. data/spec/fixtures/cassette_library/integration/related_items/parent.yml +0 -26
  42. data/spec/fixtures/cassette_library/integration/seller_listings_search.yml +0 -26
  43. data/spec/fixtures/cassette_library/integration/twenty_items.yml +0 -26
  44. data/spec/fixtures/cassette_library/unit/sucker/request.yml +0 -61
  45. data/spec/fixtures/cassette_library/unit/sucker/response.yml +0 -26
data/README.md CHANGED
@@ -1,18 +1,19 @@
1
1
  Sucker
2
2
  ======
3
3
 
4
- Sucker is a [Nokogiri-](http://github.com/rails/rails/blob/master/activesupport/lib/active_support/xml_mini/nokogiri.rb)based Ruby wrapper to the [Amazon Product Advertising API](https://affiliate-program.amazon.co.uk/gp/advertising/api/detail/main.html).
4
+ Sucker is a Nokogiri-based Ruby wrapper to the [Amazon Product Advertising API](https://affiliate-program.amazon.co.uk/gp/advertising/api/detail/main.html).
5
5
 
6
- It's fast and supports __the entire API__.
6
+ It's minimalist and fast. It supports __the entire API__.
7
7
 
8
8
  ![Electrolux](https://github.com/papercavalier/sucker/raw/master/electrolux.jpg)
9
9
 
10
+ Trim fat
11
+ --------
12
+ 1.3.0.pre has major changes under the hood.
10
13
 
11
- 1.3.0.pre
12
- ---------
13
- This release has major changes under the hood.
14
+ Active Support and Curb are no more.
14
15
 
15
- I replaced curb with Net::HTTP to make the library JRuby compatible and edited out some nonessential code. Check [here](http://rdoc.info/github/papercavalier/sucker/master/frames) to see what's left.
16
+ I edited out some nonessential methods. Check [here](http://rdoc.info/github/papercavalier/sucker/master/frames) to see what's left.
16
17
 
17
18
  Usage
18
19
  -----
@@ -32,13 +33,13 @@ Build a request.
32
33
  "ItemId" => '0816614024',
33
34
  "ResponseGroup" => 'ItemAttributes' }
34
35
 
35
- Get a response.
36
+ Literally, get a response.
36
37
 
37
38
  response = worker.get
38
39
 
39
- Consume.
40
+ Time for some business logic.
40
41
 
41
- items = response.find('Item') if response.valid?
42
+ items = response['Item'] if response.valid?
42
43
 
43
44
  Repeat ad infinitum.
44
45
 
@@ -47,27 +48,37 @@ Repeat ad infinitum.
47
48
  [Read the API.](https://affiliate-program.amazon.co.uk/gp/advertising/api/detail/main.html)
48
49
 
49
50
 
50
- Multiple local IPs
51
- ------------------
51
+ Monkey-patch that Net::HTTP
52
+ ---------------------------
53
+
54
+ Amazon limits calls to a venue to one per second per IP address.
55
+
56
+ If your server has multiple local interfaces, do the following:
52
57
 
53
- Amazon limits calls to a venue to one per second per IP. If you have
54
- multiple interfaces set up and want to use all to query Amazon, just do:
58
+ your_ips.each do |ip|
59
+ Thread.new do
60
+ worker.local_ip = ip
61
+ worker.get
62
+ end
63
+ end
55
64
 
56
- worker.local_ip = '75.80.85.90'
57
- worker.get # This request will route through the above IP
65
+ Throttle calls
66
+ ----------------
67
+
68
+ Use [Throttler](https://github.com/papercavalier/throttler) to throttle calls to one per second per IP address. Let me know if you figure out a more elegant solution.
58
69
 
59
70
  More concise syntax
60
71
  -------------------
61
72
 
62
- If you are on Ruby 1.9, try:
73
+ If you are on Ruby 1.9, do:
63
74
 
64
75
  worker << {
65
76
  operation: 'ItemLookup',
66
77
  id_type: 'ASIN',
67
78
  item_id: '0816614024' }
68
79
 
69
- Stubbing
70
- --------
80
+ Stub
81
+ ----
71
82
 
72
83
  Use [VCR](http://github.com/myronmarston/vcr).
73
84
 
@@ -78,7 +89,9 @@ Compatibility
78
89
 
79
90
  Specs pass against Ruby 1.8.7, Ruby 1.9.2, JRuby 1.5.6, and Rubinius 1.2.1.
80
91
 
81
- Morale of the story
92
+ Morale(s) of the story
82
93
  -------------------
83
94
 
84
95
  Don't overabstract a spaghetti API.
96
+
97
+ Fancy a DSL? Write your own on top of this.
data/lib/sucker.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'sucker/parameters'
4
3
  require 'sucker/request'
5
4
  require 'sucker/response'
6
5
 
data/lib/sucker.rbc ADDED
@@ -0,0 +1,281 @@
1
+ !RBIX
2
+ 0
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 55
13
+ 5
14
+ 7
15
+ 0
16
+ 64
17
+ 47
18
+ 49
19
+ 1
20
+ 1
21
+ 15
22
+ 5
23
+ 7
24
+ 2
25
+ 64
26
+ 47
27
+ 49
28
+ 1
29
+ 1
30
+ 15
31
+ 5
32
+ 7
33
+ 3
34
+ 64
35
+ 47
36
+ 49
37
+ 1
38
+ 1
39
+ 15
40
+ 99
41
+ 7
42
+ 4
43
+ 65
44
+ 49
45
+ 5
46
+ 2
47
+ 13
48
+ 99
49
+ 12
50
+ 7
51
+ 6
52
+ 12
53
+ 7
54
+ 7
55
+ 12
56
+ 65
57
+ 12
58
+ 49
59
+ 8
60
+ 4
61
+ 15
62
+ 49
63
+ 6
64
+ 0
65
+ 15
66
+ 2
67
+ 11
68
+ I
69
+ 6
70
+ I
71
+ 0
72
+ I
73
+ 0
74
+ I
75
+ 0
76
+ n
77
+ p
78
+ 9
79
+ s
80
+ 17
81
+ sucker/parameters
82
+ x
83
+ 7
84
+ require
85
+ s
86
+ 14
87
+ sucker/request
88
+ s
89
+ 15
90
+ sucker/response
91
+ x
92
+ 6
93
+ Sucker
94
+ x
95
+ 11
96
+ open_module
97
+ x
98
+ 15
99
+ __module_init__
100
+ M
101
+ 1
102
+ n
103
+ n
104
+ x
105
+ 6
106
+ Sucker
107
+ i
108
+ 13
109
+ 5
110
+ 66
111
+ 99
112
+ 7
113
+ 0
114
+ 7
115
+ 1
116
+ 65
117
+ 5
118
+ 49
119
+ 2
120
+ 4
121
+ 11
122
+ I
123
+ 5
124
+ I
125
+ 0
126
+ I
127
+ 0
128
+ I
129
+ 0
130
+ n
131
+ p
132
+ 3
133
+ x
134
+ 3
135
+ new
136
+ M
137
+ 1
138
+ n
139
+ n
140
+ x
141
+ 3
142
+ new
143
+ i
144
+ 43
145
+ 23
146
+ 0
147
+ 10
148
+ 14
149
+ 44
150
+ 43
151
+ 0
152
+ 78
153
+ 49
154
+ 1
155
+ 1
156
+ 19
157
+ 0
158
+ 15
159
+ 45
160
+ 2
161
+ 3
162
+ 13
163
+ 71
164
+ 4
165
+ 47
166
+ 9
167
+ 37
168
+ 47
169
+ 49
170
+ 5
171
+ 0
172
+ 13
173
+ 20
174
+ 0
175
+ 47
176
+ 49
177
+ 6
178
+ 1
179
+ 15
180
+ 8
181
+ 42
182
+ 20
183
+ 0
184
+ 49
185
+ 4
186
+ 1
187
+ 11
188
+ I
189
+ 4
190
+ I
191
+ 1
192
+ I
193
+ 0
194
+ I
195
+ 1
196
+ n
197
+ p
198
+ 7
199
+ x
200
+ 4
201
+ Hash
202
+ x
203
+ 16
204
+ new_from_literal
205
+ x
206
+ 7
207
+ Request
208
+ n
209
+ x
210
+ 3
211
+ new
212
+ x
213
+ 8
214
+ allocate
215
+ x
216
+ 10
217
+ initialize
218
+ p
219
+ 5
220
+ I
221
+ -1
222
+ I
223
+ 13
224
+ I
225
+ e
226
+ I
227
+ 14
228
+ I
229
+ 2b
230
+ x
231
+ 44
232
+ /Users/hakanensari/code/sucker/lib/sucker.rb
233
+ p
234
+ 1
235
+ x
236
+ 4
237
+ args
238
+ x
239
+ 13
240
+ attach_method
241
+ p
242
+ 3
243
+ I
244
+ 2
245
+ I
246
+ 13
247
+ I
248
+ d
249
+ x
250
+ 44
251
+ /Users/hakanensari/code/sucker/lib/sucker.rb
252
+ p
253
+ 0
254
+ x
255
+ 13
256
+ attach_method
257
+ p
258
+ 9
259
+ I
260
+ 0
261
+ I
262
+ 3
263
+ I
264
+ 9
265
+ I
266
+ 4
267
+ I
268
+ 12
269
+ I
270
+ 5
271
+ I
272
+ 1b
273
+ I
274
+ a
275
+ I
276
+ 37
277
+ x
278
+ 44
279
+ /Users/hakanensari/code/sucker/lib/sucker.rb
280
+ p
281
+ 0
@@ -1,10 +1,5 @@
1
- # encoding: utf-8
2
-
3
- require 'active_support/inflector'
4
-
5
- module Sucker #:nodoc:
6
-
7
- class Parameters < Hash #:nodoc:
1
+ module Sucker
2
+ class Parameters < Hash
8
3
  API_VERSION = '2010-11-01'
9
4
  SERVICE = 'AWSECommerceService'
10
5
 
@@ -14,11 +9,12 @@ module Sucker #:nodoc:
14
9
  self.store 'Timestamp', timestamp
15
10
  end
16
11
 
12
+ # Ensures all keys and values are strings and camelizes former.
17
13
  def normalize
18
14
  inject({}) do |hash, kv|
19
15
  k, v = kv
20
16
  v = v.is_a?(Array) ? v.join(',') : v.to_s
21
- hash[k.to_s.camelize] = v
17
+ hash[k.to_s.split('_').map {|w| w[0, 1] = w[0, 1].upcase; w }.join] = v
22
18
  hash
23
19
  end
24
20
  end
@@ -0,0 +1,723 @@
1
+ !RBIX
2
+ 0
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 37
13
+ 5
14
+ 7
15
+ 0
16
+ 64
17
+ 47
18
+ 49
19
+ 1
20
+ 1
21
+ 15
22
+ 99
23
+ 7
24
+ 2
25
+ 65
26
+ 49
27
+ 3
28
+ 2
29
+ 13
30
+ 99
31
+ 12
32
+ 7
33
+ 4
34
+ 12
35
+ 7
36
+ 5
37
+ 12
38
+ 65
39
+ 12
40
+ 49
41
+ 6
42
+ 4
43
+ 15
44
+ 49
45
+ 4
46
+ 0
47
+ 15
48
+ 2
49
+ 11
50
+ I
51
+ 6
52
+ I
53
+ 0
54
+ I
55
+ 0
56
+ I
57
+ 0
58
+ n
59
+ p
60
+ 7
61
+ s
62
+ 24
63
+ active_support/inflector
64
+ x
65
+ 7
66
+ require
67
+ x
68
+ 6
69
+ Sucker
70
+ x
71
+ 11
72
+ open_module
73
+ x
74
+ 15
75
+ __module_init__
76
+ M
77
+ 1
78
+ n
79
+ n
80
+ x
81
+ 6
82
+ Sucker
83
+ i
84
+ 31
85
+ 5
86
+ 66
87
+ 99
88
+ 7
89
+ 0
90
+ 45
91
+ 1
92
+ 2
93
+ 65
94
+ 49
95
+ 3
96
+ 3
97
+ 13
98
+ 99
99
+ 12
100
+ 7
101
+ 4
102
+ 12
103
+ 7
104
+ 5
105
+ 12
106
+ 65
107
+ 12
108
+ 49
109
+ 6
110
+ 4
111
+ 15
112
+ 49
113
+ 4
114
+ 0
115
+ 11
116
+ I
117
+ 6
118
+ I
119
+ 0
120
+ I
121
+ 0
122
+ I
123
+ 0
124
+ n
125
+ p
126
+ 7
127
+ x
128
+ 10
129
+ Parameters
130
+ x
131
+ 4
132
+ Hash
133
+ n
134
+ x
135
+ 10
136
+ open_class
137
+ x
138
+ 14
139
+ __class_init__
140
+ M
141
+ 1
142
+ n
143
+ n
144
+ x
145
+ 10
146
+ Parameters
147
+ i
148
+ 68
149
+ 5
150
+ 66
151
+ 65
152
+ 7
153
+ 0
154
+ 7
155
+ 1
156
+ 64
157
+ 49
158
+ 2
159
+ 2
160
+ 15
161
+ 65
162
+ 7
163
+ 3
164
+ 7
165
+ 4
166
+ 64
167
+ 49
168
+ 2
169
+ 2
170
+ 15
171
+ 99
172
+ 7
173
+ 5
174
+ 7
175
+ 6
176
+ 65
177
+ 67
178
+ 49
179
+ 7
180
+ 0
181
+ 49
182
+ 8
183
+ 4
184
+ 15
185
+ 99
186
+ 7
187
+ 9
188
+ 7
189
+ 10
190
+ 65
191
+ 67
192
+ 49
193
+ 7
194
+ 0
195
+ 49
196
+ 8
197
+ 4
198
+ 15
199
+ 5
200
+ 48
201
+ 11
202
+ 15
203
+ 99
204
+ 7
205
+ 12
206
+ 7
207
+ 13
208
+ 65
209
+ 67
210
+ 49
211
+ 7
212
+ 0
213
+ 49
214
+ 8
215
+ 4
216
+ 11
217
+ I
218
+ 5
219
+ I
220
+ 0
221
+ I
222
+ 0
223
+ I
224
+ 0
225
+ n
226
+ p
227
+ 14
228
+ x
229
+ 11
230
+ API_VERSION
231
+ s
232
+ 10
233
+ 2010-11-01
234
+ x
235
+ 9
236
+ const_set
237
+ x
238
+ 7
239
+ SERVICE
240
+ s
241
+ 19
242
+ AWSECommerceService
243
+ x
244
+ 10
245
+ initialize
246
+ M
247
+ 1
248
+ n
249
+ n
250
+ x
251
+ 10
252
+ initialize
253
+ i
254
+ 33
255
+ 5
256
+ 7
257
+ 0
258
+ 64
259
+ 45
260
+ 1
261
+ 2
262
+ 49
263
+ 3
264
+ 2
265
+ 15
266
+ 5
267
+ 7
268
+ 4
269
+ 64
270
+ 45
271
+ 5
272
+ 6
273
+ 49
274
+ 3
275
+ 2
276
+ 15
277
+ 5
278
+ 7
279
+ 7
280
+ 64
281
+ 5
282
+ 48
283
+ 8
284
+ 49
285
+ 3
286
+ 2
287
+ 11
288
+ I
289
+ 3
290
+ I
291
+ 0
292
+ I
293
+ 0
294
+ I
295
+ 0
296
+ n
297
+ p
298
+ 9
299
+ s
300
+ 7
301
+ Service
302
+ x
303
+ 7
304
+ SERVICE
305
+ n
306
+ x
307
+ 5
308
+ store
309
+ s
310
+ 7
311
+ Version
312
+ x
313
+ 11
314
+ API_VERSION
315
+ n
316
+ s
317
+ 9
318
+ Timestamp
319
+ x
320
+ 9
321
+ timestamp
322
+ p
323
+ 9
324
+ I
325
+ -1
326
+ I
327
+ b
328
+ I
329
+ 0
330
+ I
331
+ c
332
+ I
333
+ b
334
+ I
335
+ d
336
+ I
337
+ 16
338
+ I
339
+ e
340
+ I
341
+ 21
342
+ x
343
+ 55
344
+ /Users/hakanensari/code/sucker/lib/sucker/parameters.rb
345
+ p
346
+ 0
347
+ x
348
+ 17
349
+ method_visibility
350
+ x
351
+ 15
352
+ add_defn_method
353
+ x
354
+ 9
355
+ normalize
356
+ M
357
+ 1
358
+ n
359
+ n
360
+ x
361
+ 9
362
+ normalize
363
+ i
364
+ 15
365
+ 5
366
+ 44
367
+ 43
368
+ 0
369
+ 78
370
+ 49
371
+ 1
372
+ 1
373
+ 56
374
+ 2
375
+ 47
376
+ 50
377
+ 3
378
+ 1
379
+ 11
380
+ I
381
+ 3
382
+ I
383
+ 0
384
+ I
385
+ 0
386
+ I
387
+ 0
388
+ n
389
+ p
390
+ 4
391
+ x
392
+ 4
393
+ Hash
394
+ x
395
+ 16
396
+ new_from_literal
397
+ M
398
+ 1
399
+ p
400
+ 2
401
+ x
402
+ 9
403
+ for_block
404
+ t
405
+ n
406
+ x
407
+ 9
408
+ normalize
409
+ i
410
+ 75
411
+ 58
412
+ 37
413
+ 19
414
+ 0
415
+ 15
416
+ 37
417
+ 19
418
+ 1
419
+ 15
420
+ 15
421
+ 20
422
+ 1
423
+ 97
424
+ 37
425
+ 19
426
+ 2
427
+ 15
428
+ 37
429
+ 19
430
+ 3
431
+ 15
432
+ 15
433
+ 2
434
+ 15
435
+ 20
436
+ 3
437
+ 45
438
+ 0
439
+ 1
440
+ 49
441
+ 2
442
+ 1
443
+ 9
444
+ 44
445
+ 20
446
+ 3
447
+ 7
448
+ 3
449
+ 64
450
+ 49
451
+ 4
452
+ 1
453
+ 8
454
+ 49
455
+ 20
456
+ 3
457
+ 49
458
+ 5
459
+ 0
460
+ 19
461
+ 3
462
+ 15
463
+ 20
464
+ 0
465
+ 20
466
+ 2
467
+ 49
468
+ 5
469
+ 0
470
+ 49
471
+ 6
472
+ 0
473
+ 20
474
+ 3
475
+ 13
476
+ 18
477
+ 3
478
+ 49
479
+ 7
480
+ 2
481
+ 15
482
+ 15
483
+ 20
484
+ 0
485
+ 11
486
+ I
487
+ 9
488
+ I
489
+ 4
490
+ I
491
+ 2
492
+ I
493
+ 2
494
+ n
495
+ p
496
+ 8
497
+ x
498
+ 5
499
+ Array
500
+ n
501
+ x
502
+ 5
503
+ is_a?
504
+ s
505
+ 1
506
+ ,
507
+ x
508
+ 4
509
+ join
510
+ x
511
+ 4
512
+ to_s
513
+ x
514
+ 8
515
+ camelize
516
+ x
517
+ 3
518
+ []=
519
+ p
520
+ 11
521
+ I
522
+ 0
523
+ I
524
+ 12
525
+ I
526
+ a
527
+ I
528
+ 13
529
+ I
530
+ 18
531
+ I
532
+ 14
533
+ I
534
+ 34
535
+ I
536
+ 15
537
+ I
538
+ 48
539
+ I
540
+ 16
541
+ I
542
+ 4b
543
+ x
544
+ 55
545
+ /Users/hakanensari/code/sucker/lib/sucker/parameters.rb
546
+ p
547
+ 4
548
+ x
549
+ 4
550
+ hash
551
+ x
552
+ 2
553
+ kv
554
+ x
555
+ 1
556
+ k
557
+ x
558
+ 1
559
+ v
560
+ x
561
+ 6
562
+ inject
563
+ p
564
+ 5
565
+ I
566
+ -1
567
+ I
568
+ 11
569
+ I
570
+ 0
571
+ I
572
+ 12
573
+ I
574
+ f
575
+ x
576
+ 55
577
+ /Users/hakanensari/code/sucker/lib/sucker/parameters.rb
578
+ p
579
+ 0
580
+ x
581
+ 7
582
+ private
583
+ x
584
+ 9
585
+ timestamp
586
+ M
587
+ 1
588
+ n
589
+ n
590
+ x
591
+ 9
592
+ timestamp
593
+ i
594
+ 16
595
+ 45
596
+ 0
597
+ 1
598
+ 49
599
+ 2
600
+ 0
601
+ 49
602
+ 3
603
+ 0
604
+ 7
605
+ 4
606
+ 64
607
+ 49
608
+ 5
609
+ 1
610
+ 11
611
+ I
612
+ 2
613
+ I
614
+ 0
615
+ I
616
+ 0
617
+ I
618
+ 0
619
+ n
620
+ p
621
+ 6
622
+ x
623
+ 4
624
+ Time
625
+ n
626
+ x
627
+ 3
628
+ now
629
+ x
630
+ 3
631
+ utc
632
+ s
633
+ 18
634
+ %Y-%m-%dT%H:%M:%SZ
635
+ x
636
+ 8
637
+ strftime
638
+ p
639
+ 5
640
+ I
641
+ -1
642
+ I
643
+ 1c
644
+ I
645
+ 0
646
+ I
647
+ 1d
648
+ I
649
+ 10
650
+ x
651
+ 55
652
+ /Users/hakanensari/code/sucker/lib/sucker/parameters.rb
653
+ p
654
+ 0
655
+ p
656
+ 13
657
+ I
658
+ 2
659
+ I
660
+ 8
661
+ I
662
+ c
663
+ I
664
+ 9
665
+ I
666
+ 16
667
+ I
668
+ b
669
+ I
670
+ 24
671
+ I
672
+ 11
673
+ I
674
+ 32
675
+ I
676
+ 1a
677
+ I
678
+ 36
679
+ I
680
+ 1c
681
+ I
682
+ 44
683
+ x
684
+ 55
685
+ /Users/hakanensari/code/sucker/lib/sucker/parameters.rb
686
+ p
687
+ 0
688
+ x
689
+ 13
690
+ attach_method
691
+ p
692
+ 3
693
+ I
694
+ 2
695
+ I
696
+ 7
697
+ I
698
+ 1f
699
+ x
700
+ 55
701
+ /Users/hakanensari/code/sucker/lib/sucker/parameters.rb
702
+ p
703
+ 0
704
+ x
705
+ 13
706
+ attach_method
707
+ p
708
+ 5
709
+ I
710
+ 0
711
+ I
712
+ 3
713
+ I
714
+ 9
715
+ I
716
+ 5
717
+ I
718
+ 25
719
+ x
720
+ 55
721
+ /Users/hakanensari/code/sucker/lib/sucker/parameters.rb
722
+ p
723
+ 0