sucker 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/sucker/response.rb +16 -1
- data/lib/sucker/response.rbc +295 -35
- data/lib/sucker/version.rb +1 -1
- data/spec/sucker/response_spec.rb +41 -0
- data/spec/sucker/response_spec.rbc +1184 -177
- metadata +1 -1
data/lib/sucker/response.rb
CHANGED
@@ -17,6 +17,14 @@ module Sucker
|
|
17
17
|
self.code = response.code
|
18
18
|
end
|
19
19
|
|
20
|
+
# A shorthand that yields each match to a block
|
21
|
+
#
|
22
|
+
# response.each('Item') { |item| process_item(item) }
|
23
|
+
#
|
24
|
+
def each(path)
|
25
|
+
find(path).each { |match| yield match }
|
26
|
+
end
|
27
|
+
|
20
28
|
# Returns an array of errors in the reponse
|
21
29
|
def errors
|
22
30
|
find('Error')
|
@@ -24,7 +32,6 @@ module Sucker
|
|
24
32
|
|
25
33
|
# Queries an xpath and returns an array of matching nodes
|
26
34
|
#
|
27
|
-
# response = worker.get
|
28
35
|
# items = response.find('Item')
|
29
36
|
#
|
30
37
|
def find(path)
|
@@ -38,6 +45,14 @@ module Sucker
|
|
38
45
|
errors.count > 0
|
39
46
|
end
|
40
47
|
|
48
|
+
# A shorthand that yields matches to a block and collects returned values
|
49
|
+
#
|
50
|
+
# descriptions = response.map('Item') { |item| build_description(item) }
|
51
|
+
#
|
52
|
+
def map(path)
|
53
|
+
find(path).map { |match| yield match }
|
54
|
+
end
|
55
|
+
|
41
56
|
# Parses response into a simple hash
|
42
57
|
def to_hash
|
43
58
|
Hash.from_xml(xml)
|
data/lib/sucker/response.rbc
CHANGED
@@ -151,7 +151,7 @@ x
|
|
151
151
|
8
|
152
152
|
Response
|
153
153
|
i
|
154
|
-
|
154
|
+
154
|
155
155
|
5
|
156
156
|
66
|
157
157
|
5
|
@@ -212,21 +212,35 @@ i
|
|
212
212
|
6
|
213
213
|
4
|
214
214
|
15
|
215
|
-
|
215
|
+
99
|
216
216
|
7
|
217
217
|
11
|
218
218
|
7
|
219
|
-
|
219
|
+
12
|
220
|
+
65
|
221
|
+
67
|
222
|
+
49
|
223
|
+
5
|
224
|
+
0
|
225
|
+
49
|
226
|
+
6
|
227
|
+
4
|
228
|
+
15
|
229
|
+
5
|
230
|
+
7
|
231
|
+
13
|
232
|
+
7
|
233
|
+
11
|
220
234
|
47
|
221
235
|
49
|
222
|
-
|
236
|
+
14
|
223
237
|
2
|
224
238
|
15
|
225
239
|
99
|
226
240
|
7
|
227
|
-
|
241
|
+
15
|
228
242
|
7
|
229
|
-
|
243
|
+
16
|
230
244
|
65
|
231
245
|
67
|
232
246
|
49
|
@@ -238,9 +252,23 @@ i
|
|
238
252
|
15
|
239
253
|
99
|
240
254
|
7
|
255
|
+
17
|
256
|
+
7
|
257
|
+
18
|
258
|
+
65
|
259
|
+
67
|
260
|
+
49
|
261
|
+
5
|
262
|
+
0
|
263
|
+
49
|
264
|
+
6
|
265
|
+
4
|
241
266
|
15
|
267
|
+
99
|
242
268
|
7
|
243
|
-
|
269
|
+
19
|
270
|
+
7
|
271
|
+
20
|
244
272
|
65
|
245
273
|
67
|
246
274
|
49
|
@@ -252,9 +280,9 @@ i
|
|
252
280
|
15
|
253
281
|
99
|
254
282
|
7
|
255
|
-
|
283
|
+
21
|
256
284
|
7
|
257
|
-
|
285
|
+
22
|
258
286
|
65
|
259
287
|
67
|
260
288
|
49
|
@@ -266,9 +294,9 @@ i
|
|
266
294
|
15
|
267
295
|
99
|
268
296
|
7
|
269
|
-
|
297
|
+
23
|
270
298
|
7
|
271
|
-
|
299
|
+
24
|
272
300
|
65
|
273
301
|
67
|
274
302
|
49
|
@@ -288,7 +316,7 @@ I
|
|
288
316
|
0
|
289
317
|
n
|
290
318
|
p
|
291
|
-
|
319
|
+
25
|
292
320
|
x
|
293
321
|
4
|
294
322
|
body
|
@@ -372,7 +400,7 @@ f
|
|
372
400
|
I
|
373
401
|
0
|
374
402
|
I
|
375
|
-
|
403
|
+
4f
|
376
404
|
I
|
377
405
|
1
|
378
406
|
I
|
@@ -380,7 +408,7 @@ I
|
|
380
408
|
I
|
381
409
|
f
|
382
410
|
I
|
383
|
-
|
411
|
+
4f
|
384
412
|
I
|
385
413
|
10
|
386
414
|
I
|
@@ -402,6 +430,118 @@ x
|
|
402
430
|
15
|
403
431
|
add_defn_method
|
404
432
|
x
|
433
|
+
4
|
434
|
+
each
|
435
|
+
M
|
436
|
+
1
|
437
|
+
n
|
438
|
+
n
|
439
|
+
x
|
440
|
+
4
|
441
|
+
each
|
442
|
+
i
|
443
|
+
13
|
444
|
+
5
|
445
|
+
20
|
446
|
+
0
|
447
|
+
47
|
448
|
+
49
|
449
|
+
0
|
450
|
+
1
|
451
|
+
56
|
452
|
+
1
|
453
|
+
50
|
454
|
+
2
|
455
|
+
0
|
456
|
+
11
|
457
|
+
I
|
458
|
+
3
|
459
|
+
I
|
460
|
+
1
|
461
|
+
I
|
462
|
+
1
|
463
|
+
I
|
464
|
+
1
|
465
|
+
n
|
466
|
+
p
|
467
|
+
3
|
468
|
+
x
|
469
|
+
4
|
470
|
+
find
|
471
|
+
M
|
472
|
+
1
|
473
|
+
p
|
474
|
+
2
|
475
|
+
x
|
476
|
+
9
|
477
|
+
for_block
|
478
|
+
t
|
479
|
+
n
|
480
|
+
x
|
481
|
+
4
|
482
|
+
each
|
483
|
+
i
|
484
|
+
9
|
485
|
+
57
|
486
|
+
19
|
487
|
+
0
|
488
|
+
15
|
489
|
+
20
|
490
|
+
0
|
491
|
+
60
|
492
|
+
1
|
493
|
+
11
|
494
|
+
I
|
495
|
+
3
|
496
|
+
I
|
497
|
+
1
|
498
|
+
I
|
499
|
+
1
|
500
|
+
I
|
501
|
+
1
|
502
|
+
n
|
503
|
+
p
|
504
|
+
0
|
505
|
+
p
|
506
|
+
3
|
507
|
+
I
|
508
|
+
0
|
509
|
+
I
|
510
|
+
19
|
511
|
+
I
|
512
|
+
9
|
513
|
+
x
|
514
|
+
45
|
515
|
+
/Users/snl/code/sucker/lib/sucker/response.rb
|
516
|
+
p
|
517
|
+
1
|
518
|
+
x
|
519
|
+
5
|
520
|
+
match
|
521
|
+
x
|
522
|
+
4
|
523
|
+
each
|
524
|
+
p
|
525
|
+
5
|
526
|
+
I
|
527
|
+
-1
|
528
|
+
I
|
529
|
+
18
|
530
|
+
I
|
531
|
+
0
|
532
|
+
I
|
533
|
+
19
|
534
|
+
I
|
535
|
+
d
|
536
|
+
x
|
537
|
+
45
|
538
|
+
/Users/snl/code/sucker/lib/sucker/response.rb
|
539
|
+
p
|
540
|
+
1
|
541
|
+
x
|
542
|
+
4
|
543
|
+
path
|
544
|
+
x
|
405
545
|
6
|
406
546
|
errors
|
407
547
|
M
|
@@ -444,11 +584,11 @@ p
|
|
444
584
|
I
|
445
585
|
-1
|
446
586
|
I
|
447
|
-
|
587
|
+
1d
|
448
588
|
I
|
449
589
|
0
|
450
590
|
I
|
451
|
-
|
591
|
+
1e
|
452
592
|
I
|
453
593
|
9
|
454
594
|
x
|
@@ -562,7 +702,7 @@ p
|
|
562
702
|
I
|
563
703
|
0
|
564
704
|
I
|
565
|
-
|
705
|
+
26
|
566
706
|
I
|
567
707
|
d
|
568
708
|
x
|
@@ -581,11 +721,11 @@ p
|
|
581
721
|
I
|
582
722
|
-1
|
583
723
|
I
|
584
|
-
|
724
|
+
25
|
585
725
|
I
|
586
726
|
0
|
587
727
|
I
|
588
|
-
|
728
|
+
26
|
589
729
|
I
|
590
730
|
15
|
591
731
|
x
|
@@ -649,11 +789,11 @@ p
|
|
649
789
|
I
|
650
790
|
-1
|
651
791
|
I
|
652
|
-
|
792
|
+
2c
|
653
793
|
I
|
654
794
|
0
|
655
795
|
I
|
656
|
-
|
796
|
+
2d
|
657
797
|
I
|
658
798
|
a
|
659
799
|
x
|
@@ -662,6 +802,118 @@ x
|
|
662
802
|
p
|
663
803
|
0
|
664
804
|
x
|
805
|
+
3
|
806
|
+
map
|
807
|
+
M
|
808
|
+
1
|
809
|
+
n
|
810
|
+
n
|
811
|
+
x
|
812
|
+
3
|
813
|
+
map
|
814
|
+
i
|
815
|
+
13
|
816
|
+
5
|
817
|
+
20
|
818
|
+
0
|
819
|
+
47
|
820
|
+
49
|
821
|
+
0
|
822
|
+
1
|
823
|
+
56
|
824
|
+
1
|
825
|
+
50
|
826
|
+
2
|
827
|
+
0
|
828
|
+
11
|
829
|
+
I
|
830
|
+
3
|
831
|
+
I
|
832
|
+
1
|
833
|
+
I
|
834
|
+
1
|
835
|
+
I
|
836
|
+
1
|
837
|
+
n
|
838
|
+
p
|
839
|
+
3
|
840
|
+
x
|
841
|
+
4
|
842
|
+
find
|
843
|
+
M
|
844
|
+
1
|
845
|
+
p
|
846
|
+
2
|
847
|
+
x
|
848
|
+
9
|
849
|
+
for_block
|
850
|
+
t
|
851
|
+
n
|
852
|
+
x
|
853
|
+
3
|
854
|
+
map
|
855
|
+
i
|
856
|
+
9
|
857
|
+
57
|
858
|
+
19
|
859
|
+
0
|
860
|
+
15
|
861
|
+
20
|
862
|
+
0
|
863
|
+
60
|
864
|
+
1
|
865
|
+
11
|
866
|
+
I
|
867
|
+
3
|
868
|
+
I
|
869
|
+
1
|
870
|
+
I
|
871
|
+
1
|
872
|
+
I
|
873
|
+
1
|
874
|
+
n
|
875
|
+
p
|
876
|
+
0
|
877
|
+
p
|
878
|
+
3
|
879
|
+
I
|
880
|
+
0
|
881
|
+
I
|
882
|
+
35
|
883
|
+
I
|
884
|
+
9
|
885
|
+
x
|
886
|
+
45
|
887
|
+
/Users/snl/code/sucker/lib/sucker/response.rb
|
888
|
+
p
|
889
|
+
1
|
890
|
+
x
|
891
|
+
5
|
892
|
+
match
|
893
|
+
x
|
894
|
+
3
|
895
|
+
map
|
896
|
+
p
|
897
|
+
5
|
898
|
+
I
|
899
|
+
-1
|
900
|
+
I
|
901
|
+
34
|
902
|
+
I
|
903
|
+
0
|
904
|
+
I
|
905
|
+
35
|
906
|
+
I
|
907
|
+
d
|
908
|
+
x
|
909
|
+
45
|
910
|
+
/Users/snl/code/sucker/lib/sucker/response.rb
|
911
|
+
p
|
912
|
+
1
|
913
|
+
x
|
914
|
+
4
|
915
|
+
path
|
916
|
+
x
|
665
917
|
7
|
666
918
|
to_hash
|
667
919
|
M
|
@@ -709,11 +961,11 @@ p
|
|
709
961
|
I
|
710
962
|
-1
|
711
963
|
I
|
712
|
-
|
964
|
+
39
|
713
965
|
I
|
714
966
|
0
|
715
967
|
I
|
716
|
-
|
968
|
+
3a
|
717
969
|
I
|
718
970
|
a
|
719
971
|
x
|
@@ -767,11 +1019,11 @@ p
|
|
767
1019
|
I
|
768
1020
|
-1
|
769
1021
|
I
|
770
|
-
|
1022
|
+
43
|
771
1023
|
I
|
772
1024
|
0
|
773
1025
|
I
|
774
|
-
|
1026
|
+
44
|
775
1027
|
I
|
776
1028
|
9
|
777
1029
|
x
|
@@ -838,11 +1090,11 @@ p
|
|
838
1090
|
I
|
839
1091
|
-1
|
840
1092
|
I
|
841
|
-
|
1093
|
+
4b
|
842
1094
|
I
|
843
1095
|
0
|
844
1096
|
I
|
845
|
-
|
1097
|
+
4c
|
846
1098
|
I
|
847
1099
|
12
|
848
1100
|
x
|
@@ -851,7 +1103,7 @@ x
|
|
851
1103
|
p
|
852
1104
|
0
|
853
1105
|
p
|
854
|
-
|
1106
|
+
25
|
855
1107
|
I
|
856
1108
|
2
|
857
1109
|
I
|
@@ -867,23 +1119,23 @@ f
|
|
867
1119
|
I
|
868
1120
|
20
|
869
1121
|
I
|
870
|
-
|
1122
|
+
18
|
871
1123
|
I
|
872
1124
|
2e
|
873
1125
|
I
|
874
|
-
|
1126
|
+
1d
|
875
1127
|
I
|
876
1128
|
3c
|
877
1129
|
I
|
878
|
-
|
1130
|
+
25
|
879
1131
|
I
|
880
|
-
|
1132
|
+
4a
|
881
1133
|
I
|
882
|
-
|
1134
|
+
29
|
883
1135
|
I
|
884
1136
|
54
|
885
1137
|
I
|
886
|
-
|
1138
|
+
2c
|
887
1139
|
I
|
888
1140
|
62
|
889
1141
|
I
|
@@ -891,9 +1143,17 @@ I
|
|
891
1143
|
I
|
892
1144
|
70
|
893
1145
|
I
|
894
|
-
|
1146
|
+
39
|
895
1147
|
I
|
896
1148
|
7e
|
1149
|
+
I
|
1150
|
+
43
|
1151
|
+
I
|
1152
|
+
8c
|
1153
|
+
I
|
1154
|
+
4b
|
1155
|
+
I
|
1156
|
+
9a
|
897
1157
|
x
|
898
1158
|
45
|
899
1159
|
/Users/snl/code/sucker/lib/sucker/response.rb
|