sucker 1.3.0.pre → 1.3.0.pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/sucker.rb CHANGED
@@ -17,6 +17,6 @@ module Sucker
17
17
  # :secret => 'API SECRET')
18
18
  #
19
19
  def self.new(args={})
20
- Sucker::Request.new(args)
20
+ Request.new(args)
21
21
  end
22
22
  end
data/lib/sucker.rbc CHANGED
@@ -141,7 +141,7 @@ x
141
141
  3
142
142
  new
143
143
  i
144
- 45
144
+ 43
145
145
  23
146
146
  0
147
147
  10
@@ -159,32 +159,30 @@ i
159
159
  45
160
160
  2
161
161
  3
162
- 43
163
- 4
164
162
  13
165
163
  71
166
- 5
164
+ 4
167
165
  47
168
166
  9
169
- 39
167
+ 37
170
168
  47
171
169
  49
172
- 6
170
+ 5
173
171
  0
174
172
  13
175
173
  20
176
174
  0
177
175
  47
178
176
  49
179
- 7
177
+ 6
180
178
  1
181
179
  15
182
180
  8
183
- 44
181
+ 42
184
182
  20
185
183
  0
186
184
  49
187
- 5
185
+ 4
188
186
  1
189
187
  11
190
188
  I
@@ -197,7 +195,7 @@ I
197
195
  1
198
196
  n
199
197
  p
200
- 8
198
+ 7
201
199
  x
202
200
  4
203
201
  Hash
@@ -205,12 +203,9 @@ x
205
203
  16
206
204
  new_from_literal
207
205
  x
208
- 6
209
- Sucker
210
- n
211
- x
212
206
  7
213
207
  Request
208
+ n
214
209
  x
215
210
  3
216
211
  new
@@ -231,7 +226,7 @@ e
231
226
  I
232
227
  14
233
228
  I
234
- 2d
229
+ 2b
235
230
  x
236
231
  44
237
232
  /Users/hakanensari/code/sucker/lib/sucker.rb
@@ -15,10 +15,10 @@ module Sucker #:nodoc:
15
15
  end
16
16
 
17
17
  def normalize
18
- inject({}) do |hash, key_value|
19
- key, value = key_value
20
- value = value.is_a?(Array) ? value.join(',') : value.to_s
21
- hash[key.to_s.camelize] = value
18
+ inject({}) do |hash, kv|
19
+ k, v = kv
20
+ v = v.is_a?(Array) ? v.join(',') : v.to_s
21
+ hash[k.to_s.camelize] = v
22
22
  hash
23
23
  end
24
24
  end
@@ -549,14 +549,14 @@ x
549
549
  4
550
550
  hash
551
551
  x
552
- 9
553
- key_value
552
+ 2
553
+ kv
554
554
  x
555
- 3
556
- key
555
+ 1
556
+ k
557
557
  x
558
- 5
559
- value
558
+ 1
559
+ v
560
560
  x
561
561
  6
562
562
  inject
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'net/http'
4
- require 'uri'
4
+ require 'openssl'
5
5
 
6
6
  module Sucker #:nodoc:
7
7
 
@@ -36,7 +36,7 @@ module Sucker #:nodoc:
36
36
  # :key => 'API KEY',
37
37
  # :secret => 'API SECRET')
38
38
  #
39
- def initialize(args)
39
+ def initialize(args={})
40
40
  args.each { |k, v| send("#{k}=", v) }
41
41
  end
42
42
 
@@ -48,7 +48,7 @@ module Sucker #:nodoc:
48
48
  # 'ItemId' => '0816614024' }
49
49
  #
50
50
  def <<(hash)
51
- self.parameters.merge!(hash)
51
+ parameters.merge!(hash)
52
52
  end
53
53
 
54
54
  # Performs a request and returns a response
@@ -56,8 +56,11 @@ module Sucker #:nodoc:
56
56
  # response = worker.get
57
57
  #
58
58
  def get
59
- response = request_through(local_ip) do
60
- Net::HTTP.get_response(uri)
59
+ response = bind_to local_ip do
60
+ Net::HTTP.start(host) do |http|
61
+ query = build_signed_query
62
+ http.get("/onca/xml?#{query}")
63
+ end
61
64
  end
62
65
  Response.new(response)
63
66
  end
@@ -72,48 +75,20 @@ module Sucker #:nodoc:
72
75
  # worker.version = '2010-06-01'
73
76
  #
74
77
  def version=(version)
75
- self.parameters['Version'] = version
78
+ parameters['Version'] = version
76
79
  end
77
80
 
78
81
  private
79
82
 
80
- def build_query
81
- parameters.
82
- normalize.
83
- merge({ 'AWSAccessKeyId' => key }).
84
- merge({ 'AssociateTag' => associate_tag.to_s }).
85
- sort.
86
- map do |k, v|
87
- "#{k}=" + escape(v)
88
- end.join('&')
89
- end
90
-
91
- def build_signed_query
92
- query = build_query
93
-
94
- digest = OpenSSL::Digest::Digest.new('sha256')
95
- string = ['GET', host, '/onca/xml', query].join("\n")
96
- hmac = OpenSSL::HMAC.digest(digest, secret, string)
97
- signature = escape([hmac].pack('m').chomp)
98
-
99
- query + '&Signature=' + signature
100
- end
101
-
102
- def escape(value)
103
- value.gsub(/([^a-zA-Z0-9_.~-]+)/) do
104
- '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
105
- end
106
- end
107
-
108
- def host
109
- HOSTS[locale]
110
- end
111
-
112
- def request_through(local_ip)
83
+ # I am gently monkey-patching TCPSocket here to be able to bind the request
84
+ # to a local IP if specified, emulating cURL's interface option. Once a
85
+ # request is made, I reverse the patch, leaving TCPSOcket in its original
86
+ # state.
87
+ def bind_to(local_ip)
113
88
  if local_ip
114
89
  TCPSocket.instance_eval do
115
90
  (class << self; self; end).instance_eval do
116
- alias_method :orig_open, :open
91
+ alias_method :original_open, :open
117
92
 
118
93
  define_method(:open) do |conn_address, conn_port|
119
94
  original_open(conn_address, conn_port, local_ip)
@@ -127,8 +102,8 @@ module Sucker #:nodoc:
127
102
  if local_ip
128
103
  TCPSocket.instance_eval do
129
104
  (class << self; self; end).instance_eval do
130
- alias_method :open, :orig_open
131
- remove_method :orig_open
105
+ alias_method :open, :original_open
106
+ remove_method :original_open
132
107
  end
133
108
  end
134
109
  end
@@ -136,18 +111,35 @@ module Sucker #:nodoc:
136
111
  return_value
137
112
  end
138
113
 
139
- def uri
140
- URI::HTTP.build(
141
- :host => host,
142
- :path => '/onca/xml',
143
- :query => build_signed_query)
114
+ def build_query
115
+ parameters.
116
+ normalize.
117
+ merge({ 'AWSAccessKeyId' => key,
118
+ 'AssociateTag' => associate_tag.to_s }).
119
+ sort.
120
+ map { |k, v| "#{k}=" + escape(v) }.
121
+ join('&')
144
122
  end
145
123
 
146
- def uris
147
- locales.map do |locale|
148
- self.locale = locale
149
- uri.to_s
124
+ def build_signed_query
125
+ query = build_query
126
+
127
+ digest = OpenSSL::Digest::Digest.new('sha256')
128
+ string = ['GET', host, '/onca/xml', query].join("\n")
129
+ hmac = OpenSSL::HMAC.digest(digest, secret, string)
130
+ signature = escape([hmac].pack('m').chomp)
131
+
132
+ query + '&Signature=' + signature
133
+ end
134
+
135
+ def escape(value)
136
+ value.gsub(/([^a-zA-Z0-9_.~-]+)/) do
137
+ '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
150
138
  end
151
139
  end
140
+
141
+ def host
142
+ HOSTS[locale]
143
+ end
152
144
  end
153
145
  end
@@ -9,7 +9,7 @@ x
9
9
  10
10
10
  __script__
11
11
  i
12
- 46
12
+ 55
13
13
  5
14
14
  7
15
15
  0
@@ -28,30 +28,39 @@ i
28
28
  1
29
29
  1
30
30
  15
31
- 99
31
+ 5
32
32
  7
33
33
  3
34
- 65
34
+ 64
35
+ 47
35
36
  49
37
+ 1
38
+ 1
39
+ 15
40
+ 99
41
+ 7
36
42
  4
43
+ 65
44
+ 49
45
+ 5
37
46
  2
38
47
  13
39
48
  99
40
49
  12
41
50
  7
42
- 5
51
+ 6
43
52
  12
44
53
  7
45
- 6
54
+ 7
46
55
  12
47
56
  65
48
57
  12
49
58
  49
50
- 7
59
+ 8
51
60
  4
52
61
  15
53
62
  49
54
- 5
63
+ 6
55
64
  0
56
65
  15
57
66
  2
@@ -66,7 +75,7 @@ I
66
75
  0
67
76
  n
68
77
  p
69
- 8
78
+ 9
70
79
  s
71
80
  8
72
81
  net/http
@@ -74,6 +83,9 @@ x
74
83
  7
75
84
  require
76
85
  s
86
+ 7
87
+ openssl
88
+ s
77
89
  3
78
90
  uri
79
91
  x
@@ -151,7 +163,7 @@ x
151
163
  7
152
164
  Request
153
165
  i
154
- 289
166
+ 275
155
167
  5
156
168
  66
157
169
  65
@@ -426,20 +438,6 @@ i
426
438
  49
427
439
  26
428
440
  4
429
- 15
430
- 99
431
- 7
432
- 48
433
- 7
434
- 49
435
- 65
436
- 67
437
- 49
438
- 25
439
- 0
440
- 49
441
- 26
442
- 4
443
441
  11
444
442
  I
445
443
  6
@@ -451,7 +449,7 @@ I
451
449
  0
452
450
  n
453
451
  p
454
- 50
452
+ 48
455
453
  x
456
454
  5
457
455
  HOSTS
@@ -532,13 +530,27 @@ x
532
530
  10
533
531
  initialize
534
532
  i
535
- 8
533
+ 22
534
+ 23
535
+ 0
536
+ 10
537
+ 14
538
+ 44
539
+ 43
540
+ 0
541
+ 78
542
+ 49
543
+ 1
544
+ 1
545
+ 19
546
+ 0
547
+ 15
536
548
  20
537
549
  0
538
550
  56
539
- 0
551
+ 2
540
552
  50
541
- 1
553
+ 3
542
554
  0
543
555
  11
544
556
  I
@@ -546,12 +558,18 @@ I
546
558
  I
547
559
  1
548
560
  I
549
- 1
561
+ 0
550
562
  I
551
563
  1
552
564
  n
553
565
  p
554
- 2
566
+ 4
567
+ x
568
+ 4
569
+ Hash
570
+ x
571
+ 16
572
+ new_from_literal
555
573
  M
556
574
  1
557
575
  p
@@ -618,7 +636,7 @@ p
618
636
  I
619
637
  0
620
638
  I
621
- 28
639
+ 29
622
640
  I
623
641
  1b
624
642
  x
@@ -640,13 +658,13 @@ p
640
658
  I
641
659
  -1
642
660
  I
643
- 27
661
+ 28
644
662
  I
645
- 0
663
+ e
646
664
  I
647
- 28
665
+ 29
648
666
  I
649
- 8
667
+ 16
650
668
  x
651
669
  52
652
670
  /Users/hakanensari/code/sucker/lib/sucker/request.rb
@@ -672,10 +690,9 @@ x
672
690
  2
673
691
  <<
674
692
  i
675
- 10
693
+ 9
676
694
  5
677
- 49
678
- 0
695
+ 48
679
696
  0
680
697
  20
681
698
  0
@@ -705,13 +722,13 @@ p
705
722
  I
706
723
  -1
707
724
  I
708
- 32
725
+ 33
709
726
  I
710
727
  0
711
728
  I
712
- 33
729
+ 34
713
730
  I
714
- a
731
+ 9
715
732
  x
716
733
  52
717
734
  /Users/hakanensari/code/sucker/lib/sucker/request.rb
@@ -801,7 +818,7 @@ x
801
818
  3
802
819
  get
803
820
  i
804
- 12
821
+ 16
805
822
  45
806
823
  0
807
824
  1
@@ -810,12 +827,16 @@ i
810
827
  5
811
828
  48
812
829
  3
813
- 49
814
830
  4
815
- 1
831
+ 80
832
+ 56
833
+ 4
834
+ 50
835
+ 5
836
+ 2
816
837
  11
817
838
  I
818
- 3
839
+ 5
819
840
  I
820
841
  0
821
842
  I
@@ -825,7 +846,7 @@ I
825
846
  I
826
847
  -2
827
848
  p
828
- 5
849
+ 6
829
850
  x
830
851
  3
831
852
  Net
@@ -834,19 +855,108 @@ x
834
855
  4
835
856
  HTTP
836
857
  x
858
+ 4
859
+ host
860
+ M
861
+ 1
862
+ p
863
+ 2
864
+ x
865
+ 9
866
+ for_block
867
+ t
868
+ n
869
+ x
837
870
  3
838
- uri
871
+ get
872
+ i
873
+ 25
874
+ 57
875
+ 19
876
+ 0
877
+ 15
878
+ 5
879
+ 48
880
+ 0
881
+ 19
882
+ 1
883
+ 15
884
+ 20
885
+ 0
886
+ 7
887
+ 1
888
+ 20
889
+ 1
890
+ 47
891
+ 101
892
+ 2
893
+ 63
894
+ 2
895
+ 49
896
+ 3
897
+ 1
898
+ 11
899
+ I
900
+ 6
901
+ I
902
+ 2
903
+ I
904
+ 1
905
+ I
906
+ 1
907
+ n
908
+ p
909
+ 4
839
910
  x
840
- 12
841
- get_response
911
+ 18
912
+ build_signed_query
913
+ s
914
+ 10
915
+ /onca/xml?
916
+ x
917
+ 4
918
+ to_s
919
+ x
920
+ 3
921
+ get
922
+ p
923
+ 7
924
+ I
925
+ 0
926
+ I
927
+ 3d
928
+ I
929
+ 4
930
+ I
931
+ 3e
932
+ I
933
+ a
934
+ I
935
+ 3f
936
+ I
937
+ 19
938
+ x
939
+ 52
940
+ /Users/hakanensari/code/sucker/lib/sucker/request.rb
941
+ p
942
+ 2
943
+ x
944
+ 4
945
+ http
946
+ x
947
+ 5
948
+ query
949
+ x
950
+ 5
951
+ start
842
952
  p
843
953
  3
844
954
  I
845
955
  0
846
956
  I
847
- 3c
957
+ 3d
848
958
  I
849
- c
959
+ 10
850
960
  x
851
961
  52
852
962
  /Users/hakanensari/code/sucker/lib/sucker/request.rb
@@ -873,15 +983,15 @@ p
873
983
  I
874
984
  -1
875
985
  I
876
- 3a
986
+ 3b
877
987
  I
878
988
  0
879
989
  I
880
- 3b
990
+ 3c
881
991
  I
882
992
  d
883
993
  I
884
- 3e
994
+ 42
885
995
  I
886
996
  2a
887
997
  x
@@ -969,11 +1079,11 @@ p
969
1079
  I
970
1080
  -1
971
1081
  I
972
- 42
1082
+ 46
973
1083
  I
974
1084
  0
975
1085
  I
976
- 43
1086
+ 47
977
1087
  I
978
1088
  21
979
1089
  x
@@ -992,10 +1102,9 @@ x
992
1102
  8
993
1103
  version=
994
1104
  i
995
- 17
1105
+ 16
996
1106
  5
997
- 49
998
- 0
1107
+ 48
999
1108
  0
1000
1109
  7
1001
1110
  1
@@ -1035,13 +1144,13 @@ p
1035
1144
  I
1036
1145
  -1
1037
1146
  I
1038
- 4a
1147
+ 4e
1039
1148
  I
1040
1149
  0
1041
1150
  I
1042
- 4b
1151
+ 4f
1043
1152
  I
1044
- 11
1153
+ 10
1045
1154
  x
1046
1155
  52
1047
1156
  /Users/hakanensari/code/sucker/lib/sucker/request.rb
@@ -1064,7 +1173,7 @@ x
1064
1173
  11
1065
1174
  build_query
1066
1175
  i
1067
- 66
1176
+ 56
1068
1177
  5
1069
1178
  48
1070
1179
  0
@@ -1074,7 +1183,7 @@ i
1074
1183
  44
1075
1184
  43
1076
1185
  2
1077
- 79
1186
+ 80
1078
1187
  49
1079
1188
  3
1080
1189
  1
@@ -1089,32 +1198,22 @@ i
1089
1198
  6
1090
1199
  2
1091
1200
  15
1092
- 49
1093
- 7
1094
- 1
1095
- 44
1096
- 43
1097
- 2
1098
- 79
1099
- 49
1100
- 3
1101
- 1
1102
1201
  13
1103
1202
  7
1104
- 8
1203
+ 7
1105
1204
  64
1106
1205
  5
1107
1206
  48
1108
- 9
1207
+ 8
1109
1208
  49
1110
- 10
1209
+ 9
1111
1210
  0
1112
1211
  49
1113
1212
  6
1114
1213
  2
1115
1214
  15
1116
1215
  49
1117
- 7
1216
+ 10
1118
1217
  1
1119
1218
  49
1120
1219
  11
@@ -1163,9 +1262,6 @@ key
1163
1262
  x
1164
1263
  3
1165
1264
  []=
1166
- x
1167
- 5
1168
- merge
1169
1265
  s
1170
1266
  12
1171
1267
  AssociateTag
@@ -1176,6 +1272,9 @@ x
1176
1272
  4
1177
1273
  to_s
1178
1274
  x
1275
+ 5
1276
+ merge
1277
+ x
1179
1278
  4
1180
1279
  sort
1181
1280
  M
@@ -1245,19 +1344,15 @@ x
1245
1344
  1
1246
1345
  +
1247
1346
  p
1248
- 7
1347
+ 5
1249
1348
  I
1250
1349
  0
1251
1350
  I
1252
- 51
1351
+ 55
1253
1352
  I
1254
1353
  2
1255
1354
  I
1256
- 56
1257
- I
1258
- a
1259
- I
1260
- 57
1355
+ 5a
1261
1356
  I
1262
1357
  1d
1263
1358
  x
@@ -1285,37 +1380,37 @@ p
1285
1380
  I
1286
1381
  -1
1287
1382
  I
1288
- 50
1383
+ 54
1289
1384
  I
1290
1385
  0
1291
1386
  I
1292
- 51
1387
+ 55
1293
1388
  I
1294
1389
  6
1295
1390
  I
1296
- 53
1391
+ 58
1297
1392
  I
1298
- 18
1393
+ e
1299
1394
  I
1300
- 51
1395
+ 57
1301
1396
  I
1302
- 1b
1397
+ 19
1303
1398
  I
1304
- 54
1399
+ 58
1305
1400
  I
1306
- 30
1401
+ 26
1307
1402
  I
1308
- 51
1403
+ 55
1309
1404
  I
1310
- 3b
1405
+ 31
1311
1406
  I
1312
- 58
1407
+ 5b
1313
1408
  I
1314
- 3e
1409
+ 34
1315
1410
  I
1316
- 51
1411
+ 55
1317
1412
  I
1318
- 42
1413
+ 38
1319
1414
  x
1320
1415
  52
1321
1416
  /Users/hakanensari/code/sucker/lib/sucker/request.rb
@@ -1531,31 +1626,31 @@ p
1531
1626
  I
1532
1627
  -1
1533
1628
  I
1534
- 5b
1629
+ 5e
1535
1630
  I
1536
1631
  0
1537
1632
  I
1538
- 5c
1633
+ 5f
1539
1634
  I
1540
1635
  6
1541
1636
  I
1542
- 5e
1637
+ 61
1543
1638
  I
1544
1639
  2b
1545
1640
  I
1546
- 5f
1641
+ 62
1547
1642
  I
1548
1643
  41
1549
1644
  I
1550
- 60
1645
+ 63
1551
1646
  I
1552
1647
  53
1553
1648
  I
1554
- 61
1649
+ 64
1555
1650
  I
1556
1651
  68
1557
1652
  I
1558
- 63
1653
+ 66
1559
1654
  I
1560
1655
  74
1561
1656
  x
@@ -1734,7 +1829,7 @@ p
1734
1829
  I
1735
1830
  0
1736
1831
  I
1737
- 68
1832
+ 6b
1738
1833
  I
1739
1834
  27
1740
1835
  x
@@ -1750,11 +1845,11 @@ p
1750
1845
  I
1751
1846
  -1
1752
1847
  I
1753
- 66
1848
+ 69
1754
1849
  I
1755
1850
  0
1756
1851
  I
1757
- 67
1852
+ 6a
1758
1853
  I
1759
1854
  1a
1760
1855
  x
@@ -1813,11 +1908,11 @@ p
1813
1908
  I
1814
1909
  -1
1815
1910
  I
1816
- 6c
1911
+ 6f
1817
1912
  I
1818
1913
  0
1819
1914
  I
1820
- 6d
1915
+ 70
1821
1916
  I
1822
1917
  a
1823
1918
  x
@@ -1980,8 +2075,8 @@ I
1980
2075
  p
1981
2076
  5
1982
2077
  x
1983
- 9
1984
- orig_open
2078
+ 13
2079
+ original_open
1985
2080
  x
1986
2081
  4
1987
2082
  open
@@ -2044,11 +2139,11 @@ p
2044
2139
  I
2045
2140
  0
2046
2141
  I
2047
- 76
2142
+ 79
2048
2143
  I
2049
2144
  a
2050
2145
  I
2051
- 77
2146
+ 7a
2052
2147
  I
2053
2148
  17
2054
2149
  x
@@ -2070,11 +2165,11 @@ p
2070
2165
  I
2071
2166
  0
2072
2167
  I
2073
- 74
2168
+ 77
2074
2169
  I
2075
2170
  a
2076
2171
  I
2077
- 76
2172
+ 79
2078
2173
  I
2079
2174
  14
2080
2175
  x
@@ -2090,7 +2185,7 @@ p
2090
2185
  I
2091
2186
  0
2092
2187
  I
2093
- 73
2188
+ 76
2094
2189
  I
2095
2190
  c
2096
2191
  x
@@ -2191,8 +2286,8 @@ x
2191
2286
  4
2192
2287
  open
2193
2288
  x
2194
- 9
2195
- orig_open
2289
+ 13
2290
+ original_open
2196
2291
  x
2197
2292
  12
2198
2293
  alias_method
@@ -2204,11 +2299,11 @@ p
2204
2299
  I
2205
2300
  0
2206
2301
  I
2207
- 82
2302
+ 85
2208
2303
  I
2209
2304
  a
2210
2305
  I
2211
- 83
2306
+ 86
2212
2307
  I
2213
2308
  12
2214
2309
  x
@@ -2224,7 +2319,7 @@ p
2224
2319
  I
2225
2320
  0
2226
2321
  I
2227
- 81
2322
+ 84
2228
2323
  I
2229
2324
  c
2230
2325
  x
@@ -2237,39 +2332,39 @@ p
2237
2332
  I
2238
2333
  -1
2239
2334
  I
2240
- 70
2335
+ 73
2241
2336
  I
2242
2337
  0
2243
2338
  I
2244
- 71
2339
+ 74
2245
2340
  I
2246
2341
  4
2247
2342
  I
2248
- 72
2343
+ 75
2249
2344
  I
2250
2345
  e
2251
2346
  I
2252
- 71
2347
+ 74
2253
2348
  I
2254
2349
  10
2255
2350
  I
2256
- 7d
2351
+ 80
2257
2352
  I
2258
2353
  15
2259
2354
  I
2260
- 7f
2355
+ 82
2261
2356
  I
2262
2357
  19
2263
2358
  I
2264
- 80
2359
+ 83
2265
2360
  I
2266
2361
  23
2267
2362
  I
2268
- 7f
2363
+ 82
2269
2364
  I
2270
2365
  25
2271
2366
  I
2272
- 88
2367
+ 8b
2273
2368
  I
2274
2369
  28
2275
2370
  x
@@ -2392,31 +2487,31 @@ p
2392
2487
  I
2393
2488
  -1
2394
2489
  I
2395
- 8b
2490
+ 8e
2396
2491
  I
2397
2492
  0
2398
2493
  I
2399
- 8c
2494
+ 8f
2400
2495
  I
2401
2496
  5
2402
2497
  I
2403
- 8f
2498
+ 92
2404
2499
  I
2405
2500
  e
2406
2501
  I
2407
- 8d
2502
+ 90
2408
2503
  I
2409
2504
  18
2410
2505
  I
2411
- 8e
2506
+ 91
2412
2507
  I
2413
2508
  22
2414
2509
  I
2415
- 8f
2510
+ 92
2416
2511
  I
2417
2512
  2b
2418
2513
  I
2419
- 8c
2514
+ 8f
2420
2515
  I
2421
2516
  2f
2422
2517
  x
@@ -2424,254 +2519,110 @@ x
2424
2519
  /Users/hakanensari/code/sucker/lib/sucker/request.rb
2425
2520
  p
2426
2521
  0
2427
- x
2428
- 4
2429
- uris
2430
- M
2431
- 1
2432
- n
2433
- n
2434
- x
2435
- 4
2436
- uris
2437
- i
2438
- 9
2439
- 5
2440
- 48
2441
- 0
2442
- 56
2443
- 1
2444
- 50
2445
- 2
2446
- 0
2447
- 11
2448
- I
2449
- 2
2450
- I
2451
- 0
2452
- I
2453
- 0
2454
- I
2455
- 0
2456
- n
2457
- p
2458
- 3
2459
- x
2460
- 7
2461
- locales
2462
- M
2463
- 1
2464
- p
2465
- 2
2466
- x
2467
- 9
2468
- for_block
2469
- t
2470
- n
2471
- x
2472
- 4
2473
- uris
2474
- i
2475
- 23
2476
- 57
2477
- 19
2478
- 0
2479
- 15
2480
- 5
2481
- 20
2482
- 0
2483
- 13
2484
- 18
2485
- 2
2486
- 47
2487
- 49
2488
- 0
2489
- 1
2490
- 15
2491
- 15
2492
- 5
2493
- 48
2494
- 1
2495
- 49
2496
- 2
2497
- 0
2498
- 11
2499
- I
2500
- 5
2501
- I
2502
- 1
2503
- I
2504
- 1
2505
- I
2506
- 1
2507
- n
2508
- p
2509
- 3
2510
- x
2511
- 7
2512
- locale=
2513
- x
2514
- 3
2515
- uri
2516
- x
2517
- 4
2518
- to_s
2519
- p
2520
- 9
2521
- I
2522
- 0
2523
- I
2524
- 93
2525
- I
2526
- 4
2527
- I
2528
- 99
2529
- I
2530
- 5
2531
- I
2532
- 94
2533
- I
2534
- 10
2535
- I
2536
- 95
2537
- I
2538
- 17
2539
- x
2540
- 52
2541
- /Users/hakanensari/code/sucker/lib/sucker/request.rb
2542
- p
2543
- 1
2544
- x
2545
- 6
2546
- locale
2547
- x
2548
- 3
2549
- map
2550
- p
2551
- 5
2552
- I
2553
- -1
2554
- I
2555
- 92
2556
- I
2557
- 0
2558
- I
2559
- 93
2560
- I
2561
- 9
2562
- x
2563
- 52
2564
- /Users/hakanensari/code/sucker/lib/sucker/request.rb
2565
- p
2566
- 0
2567
2522
  p
2568
- 53
2523
+ 51
2569
2524
  I
2570
2525
  2
2571
2526
  I
2572
- a
2527
+ b
2573
2528
  I
2574
2529
  5
2575
2530
  I
2576
- 10
2531
+ 11
2577
2532
  I
2578
2533
  e
2579
2534
  I
2580
- b
2535
+ c
2581
2536
  I
2582
2537
  18
2583
2538
  I
2584
- c
2539
+ d
2585
2540
  I
2586
2541
  22
2587
2542
  I
2588
- d
2543
+ e
2589
2544
  I
2590
2545
  2c
2591
2546
  I
2592
- e
2547
+ f
2593
2548
  I
2594
2549
  36
2595
2550
  I
2596
- f
2551
+ 10
2597
2552
  I
2598
2553
  40
2599
2554
  I
2600
- 10
2555
+ 11
2601
2556
  I
2602
2557
  4d
2603
2558
  I
2604
- 13
2559
+ 14
2605
2560
  I
2606
2561
  55
2607
2562
  I
2608
- 16
2563
+ 17
2609
2564
  I
2610
2565
  5d
2611
2566
  I
2612
- 19
2567
+ 1a
2613
2568
  I
2614
2569
  65
2615
2570
  I
2616
- 1c
2571
+ 1d
2617
2572
  I
2618
2573
  6d
2619
2574
  I
2620
- 1f
2575
+ 20
2621
2576
  I
2622
2577
  75
2623
2578
  I
2624
- 27
2579
+ 28
2625
2580
  I
2626
2581
  83
2627
2582
  I
2628
- 32
2583
+ 33
2629
2584
  I
2630
2585
  91
2631
2586
  I
2632
- 3a
2587
+ 3b
2633
2588
  I
2634
2589
  9f
2635
2590
  I
2636
- 42
2591
+ 46
2637
2592
  I
2638
2593
  ad
2639
2594
  I
2640
- 4a
2595
+ 4e
2641
2596
  I
2642
2597
  bb
2643
2598
  I
2644
- 4e
2599
+ 52
2645
2600
  I
2646
2601
  bf
2647
2602
  I
2648
- 50
2603
+ 54
2649
2604
  I
2650
2605
  cd
2651
2606
  I
2652
- 5b
2607
+ 5e
2653
2608
  I
2654
2609
  db
2655
2610
  I
2656
- 66
2611
+ 69
2657
2612
  I
2658
2613
  e9
2659
2614
  I
2660
- 6c
2615
+ 6f
2661
2616
  I
2662
2617
  f7
2663
2618
  I
2664
- 70
2619
+ 73
2665
2620
  I
2666
2621
  105
2667
2622
  I
2668
- 8b
2623
+ 8e
2669
2624
  I
2670
2625
  113
2671
- I
2672
- 92
2673
- I
2674
- 121
2675
2626
  x
2676
2627
  52
2677
2628
  /Users/hakanensari/code/sucker/lib/sucker/request.rb
@@ -2685,7 +2636,7 @@ p
2685
2636
  I
2686
2637
  2
2687
2638
  I
2688
- 9
2639
+ a
2689
2640
  I
2690
2641
  1d
2691
2642
  x
@@ -2697,7 +2648,7 @@ x
2697
2648
  13
2698
2649
  attach_method
2699
2650
  p
2700
- 7
2651
+ 9
2701
2652
  I
2702
2653
  0
2703
2654
  I
@@ -2709,9 +2660,13 @@ I
2709
2660
  I
2710
2661
  12
2711
2662
  I
2712
- 6
2663
+ 5
2664
+ I
2665
+ 1b
2666
+ I
2667
+ 7
2713
2668
  I
2714
- 2e
2669
+ 37
2715
2670
  x
2716
2671
  52
2717
2672
  /Users/hakanensari/code/sucker/lib/sucker/request.rb