rfuzz 0.7 → 0.8

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 (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>