rfuzz 0.7 → 0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/Rakefile +1 -1
  2. data/doc/rdoc/classes/RFuzz/Browser.html +15 -15
  3. data/doc/rdoc/classes/RFuzz/Browser.src/{M000068.html → M000083.html} +0 -0
  4. data/doc/rdoc/classes/RFuzz/Browser.src/{M000069.html → M000084.html} +0 -0
  5. data/doc/rdoc/classes/RFuzz/Browser.src/{M000070.html → M000085.html} +0 -0
  6. data/doc/rdoc/classes/RFuzz/HttpClient.html +114 -57
  7. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000019.html +12 -13
  8. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000011.html → M000020.html} +20 -20
  9. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000021.html +28 -0
  10. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000022.html +30 -0
  11. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000023.html +35 -0
  12. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000024.html +22 -0
  13. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000025.html +44 -0
  14. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000026.html +38 -0
  15. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000016.html → M000027.html} +12 -12
  16. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000017.html → M000028.html} +20 -20
  17. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000018.html → M000029.html} +4 -4
  18. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000030.html +26 -0
  19. data/doc/rdoc/classes/RFuzz/HttpClientError.html +118 -0
  20. data/doc/rdoc/classes/RFuzz/HttpEncoding.html +7 -4
  21. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000001.html +12 -12
  22. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000002.html +4 -4
  23. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000003.html +12 -12
  24. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000004.html +4 -4
  25. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000005.html +18 -18
  26. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000006.html +4 -4
  27. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000007.html +6 -6
  28. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000008.html +6 -6
  29. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000009.html +18 -18
  30. data/doc/rdoc/classes/RFuzz/HttpResponse.html +74 -13
  31. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000031.html +22 -0
  32. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000032.html +18 -0
  33. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000033.html +18 -0
  34. data/doc/rdoc/classes/RFuzz/Notifier.html +49 -31
  35. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000044.html → M000058.html} +3 -3
  36. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000045.html → M000059.html} +3 -3
  37. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000047.html → M000060.html} +2 -2
  38. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000048.html → M000061.html} +2 -2
  39. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000049.html → M000062.html} +2 -2
  40. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000046.html → M000063.html} +4 -4
  41. data/doc/rdoc/classes/RFuzz/Notifier.src/M000064.html +17 -0
  42. data/doc/rdoc/classes/RFuzz/PushBackIO.html +296 -0
  43. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000010.html +19 -0
  44. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000011.html +20 -0
  45. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000012.html +19 -0
  46. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000013.html +18 -0
  47. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000014.html +44 -0
  48. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000015.html +18 -0
  49. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000016.html +18 -0
  50. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000017.html +18 -0
  51. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000018.html +22 -0
  52. data/doc/rdoc/classes/RFuzz/RandomGenerator.html +62 -62
  53. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000032.html → M000046.html} +0 -0
  54. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000033.html → M000047.html} +0 -0
  55. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000036.html → M000050.html} +0 -0
  56. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000037.html → M000051.html} +0 -0
  57. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000038.html → M000052.html} +0 -0
  58. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000039.html → M000053.html} +0 -0
  59. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000040.html → M000054.html} +0 -0
  60. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000041.html → M000055.html} +0 -0
  61. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000042.html → M000056.html} +0 -0
  62. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000043.html → M000057.html} +0 -0
  63. data/doc/rdoc/classes/RFuzz/Sampler.html +60 -60
  64. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000056.html → M000071.html} +0 -0
  65. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000057.html → M000072.html} +0 -0
  66. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000058.html → M000073.html} +0 -0
  67. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000059.html → M000074.html} +0 -0
  68. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000060.html → M000075.html} +0 -0
  69. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000061.html → M000076.html} +0 -0
  70. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000062.html → M000077.html} +0 -0
  71. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000063.html → M000078.html} +0 -0
  72. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000064.html → M000079.html} +0 -0
  73. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000065.html → M000080.html} +0 -0
  74. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000066.html → M000081.html} +0 -0
  75. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000067.html → M000082.html} +0 -0
  76. data/doc/rdoc/classes/RFuzz/Session.html +63 -63
  77. data/doc/rdoc/classes/RFuzz/Session.src/{M000020.html → M000034.html} +0 -0
  78. data/doc/rdoc/classes/RFuzz/Session.src/{M000021.html → M000035.html} +0 -0
  79. data/doc/rdoc/classes/RFuzz/Session.src/{M000022.html → M000036.html} +0 -0
  80. data/doc/rdoc/classes/RFuzz/Session.src/{M000023.html → M000037.html} +0 -0
  81. data/doc/rdoc/classes/RFuzz/Session.src/{M000024.html → M000038.html} +0 -0
  82. data/doc/rdoc/classes/RFuzz/Session.src/{M000025.html → M000039.html} +0 -0
  83. data/doc/rdoc/classes/RFuzz/Session.src/{M000026.html → M000040.html} +0 -0
  84. data/doc/rdoc/classes/RFuzz/Session.src/{M000027.html → M000041.html} +0 -0
  85. data/doc/rdoc/classes/RFuzz/Session.src/{M000028.html → M000042.html} +0 -0
  86. data/doc/rdoc/classes/RFuzz/Session.src/{M000029.html → M000043.html} +0 -0
  87. data/doc/rdoc/classes/RFuzz/Session.src/{M000030.html → M000044.html} +0 -0
  88. data/doc/rdoc/classes/RFuzz/Session.src/{M000031.html → M000045.html} +0 -0
  89. data/doc/rdoc/classes/RFuzz/StatsTracker.html +32 -32
  90. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000050.html → M000065.html} +0 -0
  91. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000051.html → M000066.html} +0 -0
  92. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000052.html → M000067.html} +0 -0
  93. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000053.html → M000068.html} +0 -0
  94. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000054.html → M000069.html} +0 -0
  95. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000055.html → M000070.html} +0 -0
  96. data/doc/rdoc/classes/RFuzz.html +7 -1
  97. data/doc/rdoc/created.rid +1 -1
  98. data/doc/rdoc/files/lib/rfuzz/client_rb.html +2 -2
  99. data/doc/rdoc/files/lib/rfuzz/pushbackio_rb.html +108 -0
  100. data/doc/rdoc/fr_class_index.html +2 -0
  101. data/doc/rdoc/fr_file_index.html +1 -0
  102. data/doc/rdoc/fr_method_index.html +76 -61
  103. data/examples/cl_watcher.rb +12 -9
  104. data/examples/hpricot_pudding.rb +1 -1
  105. data/examples/mongrel_test_suite/test/http/protocol_parameters.rb +0 -3
  106. data/examples/mongrel_test_suite/test/rails/catastrophe.rb +26 -0
  107. data/examples/mongrel_test_suite/test/rails/conditional.rb +81 -0
  108. data/examples/mongrel_test_suite/test/rails/put.rb +25 -0
  109. data/examples/mongrel_test_suite/test/rails/redirect.rb +13 -0
  110. data/examples/mongrel_test_suite/test/rails/static_files.rb +47 -2
  111. data/examples/rails_security_test.rb +61 -0
  112. data/ext/http11_client/http11_client.c +15 -1
  113. data/ext/http11_client/http11_parser.c +627 -203
  114. data/ext/http11_client/http11_parser.h +2 -0
  115. data/ext/http11_client/http11_parser.rl +8 -4
  116. data/lib/rfuzz/client.rb +124 -115
  117. data/lib/rfuzz/pushbackio.rb +90 -0
  118. metadata +86 -60
  119. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000010.html +0 -24
  120. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000012.html +0 -50
  121. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000013.html +0 -49
  122. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000014.html +0 -57
  123. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000015.html +0 -37
@@ -10,11 +10,11 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 121</span>
14
- 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">s</span>)
15
- 122: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'+'</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/((?:%[0-9a-fA-F]{2})+)/n</span>){
16
- 123: [<span class="ruby-identifier">$1</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'%'</span>)].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'H*'</span>)
17
- 124: }
18
- 125: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 135</span>
14
+ 135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">s</span>)
15
+ 136: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'+'</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/((?:%[0-9a-fA-F]{2})+)/n</span>){
16
+ 137: [<span class="ruby-identifier">$1</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'%'</span>)].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'H*'</span>)
17
+ 138: }
18
+ 139: <span class="ruby-keyword kw">end</span></pre>
19
19
  </body>
20
20
  </html>
@@ -10,23 +10,23 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 131</span>
14
- 131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_parse</span>(<span class="ruby-identifier">qs</span>, <span class="ruby-identifier">d</span> = <span class="ruby-value str">'&amp;;'</span>)
15
- 132: <span class="ruby-identifier">params</span> = {}
16
- 133: (<span class="ruby-identifier">qs</span><span class="ruby-operator">||</span><span class="ruby-value str">''</span>).<span class="ruby-identifier">split</span>(<span class="ruby-node">/[#{d}] */n</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-identifier">params</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,<span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
17
- 134: <span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span>=<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">p</span>).<span class="ruby-identifier">split</span>(<span class="ruby-value str">'='</span>,<span class="ruby-value">2</span>)
18
- 135: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cur</span> = <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>]
19
- 136: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cur</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Array</span>
20
- 137: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span>
21
- 138: <span class="ruby-keyword kw">else</span>
22
- 139: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>] = [<span class="ruby-identifier">cur</span>, <span class="ruby-identifier">v</span>]
23
- 140: <span class="ruby-keyword kw">end</span>
24
- 141: <span class="ruby-keyword kw">else</span>
25
- 142: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
26
- 143: <span class="ruby-keyword kw">end</span>
27
- 144: }
28
- 145:
29
- 146: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">params</span>
30
- 147: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 145</span>
14
+ 145: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_parse</span>(<span class="ruby-identifier">qs</span>, <span class="ruby-identifier">d</span> = <span class="ruby-value str">'&amp;;'</span>)
15
+ 146: <span class="ruby-identifier">params</span> = {}
16
+ 147: (<span class="ruby-identifier">qs</span><span class="ruby-operator">||</span><span class="ruby-value str">''</span>).<span class="ruby-identifier">split</span>(<span class="ruby-node">/[#{d}] */n</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-identifier">params</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,<span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
17
+ 148: <span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span>=<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">p</span>).<span class="ruby-identifier">split</span>(<span class="ruby-value str">'='</span>,<span class="ruby-value">2</span>)
18
+ 149: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cur</span> = <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>]
19
+ 150: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cur</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Array</span>
20
+ 151: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span>
21
+ 152: <span class="ruby-keyword kw">else</span>
22
+ 153: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>] = [<span class="ruby-identifier">cur</span>, <span class="ruby-identifier">v</span>]
23
+ 154: <span class="ruby-keyword kw">end</span>
24
+ 155: <span class="ruby-keyword kw">else</span>
25
+ 156: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
26
+ 157: <span class="ruby-keyword kw">end</span>
27
+ 158: }
28
+ 159:
29
+ 160: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">params</span>
30
+ 161: <span class="ruby-keyword kw">end</span></pre>
31
31
  </body>
32
32
  </html>
@@ -82,19 +82,7 @@
82
82
  <p>
83
83
  A simple hash is returned for each request made by <a
84
84
  href="HttpClient.html">HttpClient</a> with the headers that were given by
85
- the server for that request. Attached to this are four attributes you can
86
- play with:
87
- </p>
88
- <pre>
89
- * http_reason
90
- * http_version
91
- * http_status
92
- * http_body
93
- </pre>
94
- <p>
95
- These are set internally by the Ragel/C parser so they&#8217;re very fast
96
- and pretty much C voodoo. You can modify them without fear once you get the
97
- response.
85
+ the server for that request.
98
86
  </p>
99
87
 
100
88
  </div>
@@ -102,6 +90,15 @@ response.
102
90
 
103
91
  </div>
104
92
 
93
+ <div id="method-list">
94
+ <h3 class="section-bar">Methods</h3>
95
+
96
+ <div class="name-list">
97
+ <a href="#M000031">chunk_size</a>&nbsp;&nbsp;
98
+ <a href="#M000033">chunked_encoding?</a>&nbsp;&nbsp;
99
+ <a href="#M000032">last_chunk?</a>&nbsp;&nbsp;
100
+ </div>
101
+ </div>
105
102
 
106
103
  </div>
107
104
 
@@ -158,6 +155,14 @@ The status code (as a string!)
158
155
  <td class="context-item-desc">
159
156
  The HTTP version returned.
160
157
 
158
+ </td>
159
+ </tr>
160
+ <tr class="top-aligned-row context-row">
161
+ <td class="context-item-name">raw_chunks</td>
162
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
163
+ <td class="context-item-desc">
164
+ The actual chunks taken from the chunked encoding
165
+
161
166
  </td>
162
167
  </tr>
163
168
  </table>
@@ -167,6 +172,62 @@ The HTTP version returned.
167
172
 
168
173
 
169
174
  <!-- if method_list -->
175
+ <div id="methods">
176
+ <h3 class="section-bar">Public Instance methods</h3>
177
+
178
+ <div id="method-M000031" class="method-detail">
179
+ <a name="M000031"></a>
180
+
181
+ <div class="method-heading">
182
+ <a href="HttpResponse.src/M000031.html" target="Code" class="method-signature"
183
+ onclick="popupCode('HttpResponse.src/M000031.html');return false;">
184
+ <span class="method-name">chunk_size</span><span class="method-args">()</span>
185
+ </a>
186
+ </div>
187
+
188
+ <div class="method-description">
189
+ <p>
190
+ Converts the http_chunk_size string properly
191
+ </p>
192
+ </div>
193
+ </div>
194
+
195
+ <div id="method-M000033" class="method-detail">
196
+ <a name="M000033"></a>
197
+
198
+ <div class="method-heading">
199
+ <a href="HttpResponse.src/M000033.html" target="Code" class="method-signature"
200
+ onclick="popupCode('HttpResponse.src/M000033.html');return false;">
201
+ <span class="method-name">chunked_encoding?</span><span class="method-args">()</span>
202
+ </a>
203
+ </div>
204
+
205
+ <div class="method-description">
206
+ <p>
207
+ Easier way to find out if this is a chunked encoding
208
+ </p>
209
+ </div>
210
+ </div>
211
+
212
+ <div id="method-M000032" class="method-detail">
213
+ <a name="M000032"></a>
214
+
215
+ <div class="method-heading">
216
+ <a href="HttpResponse.src/M000032.html" target="Code" class="method-signature"
217
+ onclick="popupCode('HttpResponse.src/M000032.html');return false;">
218
+ <span class="method-name">last_chunk?</span><span class="method-args">()</span>
219
+ </a>
220
+ </div>
221
+
222
+ <div class="method-description">
223
+ <p>
224
+ true if this is the last chunk, nil otherwise (false)
225
+ </p>
226
+ </div>
227
+ </div>
228
+
229
+
230
+ </div>
170
231
 
171
232
 
172
233
  </div>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>chunk_size (RFuzz::HttpResponse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 35</span>
14
+ 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chunk_size</span>
15
+ 36: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@chunk_size</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
16
+ 37: <span class="ruby-ivar">@chunk_size</span> = <span class="ruby-ivar">@http_chunk_size</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@http_chunk_size</span>.<span class="ruby-identifier">to_i</span>(<span class="ruby-identifier">base</span>=<span class="ruby-value">16</span>) <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
17
+ 38: <span class="ruby-keyword kw">end</span>
18
+ 39:
19
+ 40: <span class="ruby-ivar">@chunk_size</span>
20
+ 41: <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>last_chunk? (RFuzz::HttpResponse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 44</span>
14
+ 44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last_chunk?</span>
15
+ 45: <span class="ruby-ivar">@last_chunk</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">chunk_size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
16
+ 46: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>chunked_encoding? (RFuzz::HttpResponse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 49</span>
14
+ 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chunked_encoding?</span>
15
+ 50: <span class="ruby-regexp re">/chunked/i</span> <span class="ruby-operator">===</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-constant">HttpClient</span><span class="ruby-operator">::</span><span class="ruby-constant">TRANSFER_ENCODING</span>]
16
+ 51: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -104,12 +104,13 @@ sleeping inside them and can track timing data.
104
104
  <h3 class="section-bar">Methods</h3>
105
105
 
106
106
  <div class="name-list">
107
- <a href="#M000049">close</a>&nbsp;&nbsp;
108
- <a href="#M000044">connect</a>&nbsp;&nbsp;
109
- <a href="#M000048">read_body</a>&nbsp;&nbsp;
110
- <a href="#M000047">read_header</a>&nbsp;&nbsp;
111
- <a href="#M000046">redirect</a>&nbsp;&nbsp;
112
- <a href="#M000045">send_request</a>&nbsp;&nbsp;
107
+ <a href="#M000063">close</a>&nbsp;&nbsp;
108
+ <a href="#M000058">connect</a>&nbsp;&nbsp;
109
+ <a href="#M000062">read_body</a>&nbsp;&nbsp;
110
+ <a href="#M000064">read_chunk</a>&nbsp;&nbsp;
111
+ <a href="#M000061">read_header</a>&nbsp;&nbsp;
112
+ <a href="#M000060">redirect</a>&nbsp;&nbsp;
113
+ <a href="#M000059">send_request</a>&nbsp;&nbsp;
113
114
  </div>
114
115
  </div>
115
116
 
@@ -131,12 +132,12 @@ sleeping inside them and can track timing data.
131
132
  <div id="methods">
132
133
  <h3 class="section-bar">Public Instance methods</h3>
133
134
 
134
- <div id="method-M000049" class="method-detail">
135
- <a name="M000049"></a>
135
+ <div id="method-M000063" class="method-detail">
136
+ <a name="M000063"></a>
136
137
 
137
138
  <div class="method-heading">
138
- <a href="Notifier.src/M000049.html" target="Code" class="method-signature"
139
- onclick="popupCode('Notifier.src/M000049.html');return false;">
139
+ <a href="Notifier.src/M000063.html" target="Code" class="method-signature"
140
+ onclick="popupCode('Notifier.src/M000063.html');return false;">
140
141
  <span class="method-name">close</span><span class="method-args">(state)</span>
141
142
  </a>
142
143
  </div>
@@ -148,12 +149,12 @@ Before and after the client closes with the server.
148
149
  </div>
149
150
  </div>
150
151
 
151
- <div id="method-M000044" class="method-detail">
152
- <a name="M000044"></a>
152
+ <div id="method-M000058" class="method-detail">
153
+ <a name="M000058"></a>
153
154
 
154
155
  <div class="method-heading">
155
- <a href="Notifier.src/M000044.html" target="Code" class="method-signature"
156
- onclick="popupCode('Notifier.src/M000044.html');return false;">
156
+ <a href="Notifier.src/M000058.html" target="Code" class="method-signature"
157
+ onclick="popupCode('Notifier.src/M000058.html');return false;">
157
158
  <span class="method-name">connect</span><span class="method-args">(state)</span>
158
159
  </a>
159
160
  </div>
@@ -165,12 +166,12 @@ Fired right before connecting and right after the connection.
165
166
  </div>
166
167
  </div>
167
168
 
168
- <div id="method-M000048" class="method-detail">
169
- <a name="M000048"></a>
169
+ <div id="method-M000062" class="method-detail">
170
+ <a name="M000062"></a>
170
171
 
171
172
  <div class="method-heading">
172
- <a href="Notifier.src/M000048.html" target="Code" class="method-signature"
173
- onclick="popupCode('Notifier.src/M000048.html');return false;">
173
+ <a href="Notifier.src/M000062.html" target="Code" class="method-signature"
174
+ onclick="popupCode('Notifier.src/M000062.html');return false;">
174
175
  <span class="method-name">read_body</span><span class="method-args">(state)</span>
175
176
  </a>
176
177
  </div>
@@ -182,12 +183,29 @@ Before and after the body is ready.
182
183
  </div>
183
184
  </div>
184
185
 
185
- <div id="method-M000047" class="method-detail">
186
- <a name="M000047"></a>
186
+ <div id="method-M000064" class="method-detail">
187
+ <a name="M000064"></a>
187
188
 
188
189
  <div class="method-heading">
189
- <a href="Notifier.src/M000047.html" target="Code" class="method-signature"
190
- onclick="popupCode('Notifier.src/M000047.html');return false;">
190
+ <a href="Notifier.src/M000064.html" target="Code" class="method-signature"
191
+ onclick="popupCode('Notifier.src/M000064.html');return false;">
192
+ <span class="method-name">read_chunk</span><span class="method-args">(state)</span>
193
+ </a>
194
+ </div>
195
+
196
+ <div class="method-description">
197
+ <p>
198
+ Called when a chunk from a chunked encoding is read.
199
+ </p>
200
+ </div>
201
+ </div>
202
+
203
+ <div id="method-M000061" class="method-detail">
204
+ <a name="M000061"></a>
205
+
206
+ <div class="method-heading">
207
+ <a href="Notifier.src/M000061.html" target="Code" class="method-signature"
208
+ onclick="popupCode('Notifier.src/M000061.html');return false;">
191
209
  <span class="method-name">read_header</span><span class="method-args">(state)</span>
192
210
  </a>
193
211
  </div>
@@ -199,31 +217,31 @@ Before and after the header is finally read.
199
217
  </div>
200
218
  </div>
201
219
 
202
- <div id="method-M000046" class="method-detail">
203
- <a name="M000046"></a>
220
+ <div id="method-M000060" class="method-detail">
221
+ <a name="M000060"></a>
204
222
 
205
223
  <div class="method-heading">
206
- <a href="Notifier.src/M000046.html" target="Code" class="method-signature"
207
- onclick="popupCode('Notifier.src/M000046.html');return false;">
224
+ <a href="Notifier.src/M000060.html" target="Code" class="method-signature"
225
+ onclick="popupCode('Notifier.src/M000060.html');return false;">
208
226
  <span class="method-name">redirect</span><span class="method-args">(state)</span>
209
227
  </a>
210
228
  </div>
211
229
 
212
230
  <div class="method-description">
213
231
  <p>
214
- Called whenever a <a href="HttpClient.html#M000017">HttpClient.redirect</a>
232
+ Called whenever a <a href="HttpClient.html#M000028">HttpClient.redirect</a>
215
233
  is done and there are redirects to follow. You can use a notifier to detect
216
234
  that you&#8217;re doing to many and throw an abort.
217
235
  </p>
218
236
  </div>
219
237
  </div>
220
238
 
221
- <div id="method-M000045" class="method-detail">
222
- <a name="M000045"></a>
239
+ <div id="method-M000059" class="method-detail">
240
+ <a name="M000059"></a>
223
241
 
224
242
  <div class="method-heading">
225
- <a href="Notifier.src/M000045.html" target="Code" class="method-signature"
226
- onclick="popupCode('Notifier.src/M000045.html');return false;">
243
+ <a href="Notifier.src/M000059.html" target="Code" class="method-signature"
244
+ onclick="popupCode('Notifier.src/M000059.html');return false;">
227
245
  <span class="method-name">send_request</span><span class="method-args">(state)</span>
228
246
  </a>
229
247
  </div>
@@ -10,8 +10,8 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 476</span>
14
- 476: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>(<span class="ruby-identifier">state</span>)
15
- 477: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 480</span>
14
+ 480: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>(<span class="ruby-identifier">state</span>)
15
+ 481: <span class="ruby-keyword kw">end</span></pre>
16
16
  </body>
17
17
  </html>
@@ -10,8 +10,8 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 482</span>
14
- 482: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_request</span>(<span class="ruby-identifier">state</span>)
15
- 483: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 486</span>
14
+ 486: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_request</span>(<span class="ruby-identifier">state</span>)
15
+ 487: <span class="ruby-keyword kw">end</span></pre>
16
16
  </body>
17
17
  </html>
@@ -5,13 +5,13 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>read_header (RFuzz::Notifier)</title>
8
+ <title>redirect (RFuzz::Notifier)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
13
  <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 492</span>
14
- 492: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_header</span>(<span class="ruby-identifier">state</span>)
14
+ 492: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect</span>(<span class="ruby-identifier">state</span>)
15
15
  493: <span class="ruby-keyword kw">end</span></pre>
16
16
  </body>
17
17
  </html>
@@ -5,13 +5,13 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>read_body (RFuzz::Notifier)</title>
8
+ <title>read_header (RFuzz::Notifier)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
13
  <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 496</span>
14
- 496: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_body</span>(<span class="ruby-identifier">state</span>)
14
+ 496: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_header</span>(<span class="ruby-identifier">state</span>)
15
15
  497: <span class="ruby-keyword kw">end</span></pre>
16
16
  </body>
17
17
  </html>
@@ -5,13 +5,13 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>close (RFuzz::Notifier)</title>
8
+ <title>read_body (RFuzz::Notifier)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
13
  <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 500</span>
14
- 500: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>(<span class="ruby-identifier">state</span>)
14
+ 500: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_body</span>(<span class="ruby-identifier">state</span>)
15
15
  501: <span class="ruby-keyword kw">end</span></pre>
16
16
  </body>
17
17
  </html>
@@ -5,13 +5,13 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>redirect (RFuzz::Notifier)</title>
8
+ <title>close (RFuzz::Notifier)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 488</span>
14
- 488: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect</span>(<span class="ruby-identifier">state</span>)
15
- 489: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 504</span>
14
+ 504: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>(<span class="ruby-identifier">state</span>)
15
+ 505: <span class="ruby-keyword kw">end</span></pre>
16
16
  </body>
17
17
  </html>
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>read_chunk (RFuzz::Notifier)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 508</span>
14
+ 508: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_chunk</span>(<span class="ruby-identifier">state</span>)
15
+ 509: <span class="ruby-keyword kw">end</span></pre>
16
+ </body>
17
+ </html>