stella 0.3.2 → 0.5.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.
Files changed (100) hide show
  1. data/README.txt +24 -84
  2. data/Rakefile +1 -6
  3. data/doc/classes/Crypto.html +248 -0
  4. data/doc/classes/Crypto/Key.html +308 -0
  5. data/doc/classes/Enumerable.html +309 -0
  6. data/doc/classes/FileUtil.html +310 -0
  7. data/doc/classes/HTTPUtil.html +530 -0
  8. data/doc/classes/MathUtil.html +210 -0
  9. data/doc/classes/Stella.html +238 -0
  10. data/doc/classes/Stella/Adapter.html +127 -0
  11. data/doc/classes/Stella/Adapter/ApacheBench.html +1076 -0
  12. data/doc/classes/Stella/Adapter/Base.html +432 -0
  13. data/doc/classes/Stella/Adapter/CommandNotReady.html +146 -0
  14. data/doc/classes/Stella/Adapter/Httperf.html +949 -0
  15. data/doc/classes/Stella/Adapter/Siege.html +1011 -0
  16. data/doc/classes/Stella/CLI.html +914 -0
  17. data/doc/classes/Stella/CLI/Base.html +186 -0
  18. data/doc/classes/Stella/CLI/Language.html +149 -0
  19. data/doc/classes/Stella/CLI/LocalTest.html +268 -0
  20. data/doc/classes/Stella/Command.html +111 -0
  21. data/doc/classes/Stella/Command/Base.html +335 -0
  22. data/doc/classes/Stella/Config.html +292 -0
  23. data/doc/classes/Stella/InvalidArgument.html +242 -0
  24. data/doc/classes/Stella/LocalTest.html +450 -0
  25. data/doc/classes/Stella/Logger.html +548 -0
  26. data/doc/classes/Stella/Response.html +846 -0
  27. data/doc/classes/Stella/Storable.html +928 -0
  28. data/doc/classes/Stella/Test.html +142 -0
  29. data/doc/classes/Stella/Test/DaySummary.html +249 -0
  30. data/doc/classes/Stella/Test/Definition.html +294 -0
  31. data/doc/classes/Stella/Test/Definition/Rampup.html +215 -0
  32. data/doc/classes/Stella/Test/RunSummary.html +315 -0
  33. data/doc/classes/Stella/Test/SummaryBase.html +286 -0
  34. data/doc/classes/Stella/Test/TestSummary.html +200 -0
  35. data/doc/classes/Stella/Text.html +581 -0
  36. data/doc/classes/Stella/Text/Resource.html +289 -0
  37. data/doc/classes/Stella/UnavailableAdapter.html +242 -0
  38. data/doc/classes/Stella/UnknownValue.html +242 -0
  39. data/doc/classes/Stella/UnsupportedLanguage.html +115 -0
  40. data/doc/classes/Stella/Util.html +348 -0
  41. data/doc/classes/TextGraph.html +460 -0
  42. data/doc/classes/TimerUtil.html +431 -0
  43. data/doc/created.rid +1 -0
  44. data/doc/files/LICENSE_txt.html +129 -0
  45. data/doc/files/README_txt.html +209 -0
  46. data/doc/files/lib/stella/adapter/ab_rb.html +101 -0
  47. data/doc/files/lib/stella/adapter/base_rb.html +101 -0
  48. data/doc/files/lib/stella/adapter/httperf_rb.html +101 -0
  49. data/doc/files/lib/stella/adapter/siege_rb.html +101 -0
  50. data/doc/files/lib/stella/cli/base_rb.html +101 -0
  51. data/doc/files/lib/stella/cli/language_rb.html +101 -0
  52. data/doc/files/lib/stella/cli/localtest_rb.html +101 -0
  53. data/doc/files/lib/stella/cli_rb.html +112 -0
  54. data/doc/files/lib/stella/command/base_rb.html +101 -0
  55. data/doc/files/lib/stella/command/localtest_rb.html +101 -0
  56. data/doc/files/lib/stella/logger_rb.html +101 -0
  57. data/doc/files/lib/stella/response_rb.html +101 -0
  58. data/doc/files/lib/stella/storable_rb.html +109 -0
  59. data/doc/files/lib/stella/support_rb.html +101 -0
  60. data/doc/files/lib/stella/test/daysummary_rb.html +101 -0
  61. data/doc/files/lib/stella/test/definition_rb.html +101 -0
  62. data/doc/files/lib/stella/test/runsummary_rb.html +101 -0
  63. data/doc/files/lib/stella/test/summarybase_rb.html +101 -0
  64. data/doc/files/lib/stella/test/testsummary_rb.html +108 -0
  65. data/doc/files/lib/stella/text/resource_rb.html +108 -0
  66. data/doc/files/lib/stella/text_rb.html +108 -0
  67. data/doc/files/lib/stella_rb.html +128 -0
  68. data/doc/files/lib/utils/crypto-key_rb.html +116 -0
  69. data/doc/files/lib/utils/fileutil_rb.html +108 -0
  70. data/doc/files/lib/utils/httputil_rb.html +110 -0
  71. data/doc/files/lib/utils/mathutil_rb.html +101 -0
  72. data/doc/files/lib/utils/textgraph_rb.html +138 -0
  73. data/doc/files/lib/utils/timerutil_rb.html +108 -0
  74. data/doc/fr_class_index.html +66 -0
  75. data/doc/fr_file_index.html +62 -0
  76. data/doc/fr_method_index.html +309 -0
  77. data/doc/index.html +24 -0
  78. data/doc/rdoc-style.css +208 -0
  79. data/lib/stella.rb +5 -6
  80. data/lib/stella/adapter/ab.rb +4 -31
  81. data/lib/stella/adapter/base.rb +1 -15
  82. data/lib/stella/adapter/httperf.rb +4 -35
  83. data/lib/stella/adapter/siege.rb +29 -51
  84. data/lib/stella/cli.rb +22 -45
  85. data/lib/stella/cli/language.rb +0 -2
  86. data/lib/stella/cli/localtest.rb +0 -5
  87. data/lib/stella/command/base.rb +1 -1
  88. data/lib/stella/command/localtest.rb +68 -84
  89. data/lib/stella/test/daysummary.rb +93 -0
  90. data/lib/stella/test/definition.rb +5 -10
  91. data/lib/stella/test/{run/summary.rb → runsummary.rb} +6 -4
  92. data/lib/stella/test/{base.rb → summarybase.rb} +7 -3
  93. data/lib/stella/test/{summary.rb → testsummary.rb} +29 -27
  94. data/lib/utils/mathutil.rb +34 -36
  95. data/spec/base.rb +26 -0
  96. data/spec/shell_spec.rb +12 -0
  97. data/support/text/en.yaml +1 -7
  98. metadata +102 -8
  99. data/lib/stella/cli/agents.rb +0 -73
  100. data/lib/utils/escape.rb +0 -302
@@ -0,0 +1,1011 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Stella::Adapter::Siege</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Stella::Adapter::Siege</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/stella/adapter/siege_rb.html">
59
+ lib/stella/adapter/siege.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Base.html">
69
+ Stella::Adapter::Base
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ SIEGE Usage: siege [options]
86
+ </p>
87
+ <pre>
88
+ siege [options] URL
89
+ siege -g URL
90
+ </pre>
91
+ <p>
92
+ Options:
93
+ </p>
94
+ <pre>
95
+ -V, --version VERSION, prints version number to screen.
96
+ -h, --help HELP, prints this section.
97
+ -C, --config CONFIGURATION, show the current configuration.
98
+ -v, --verbose VERBOSE, prints notification to screen.
99
+ -g, --get GET, pull down headers from the server and display HTTP
100
+ transaction. Great for web application debugging.
101
+ -c, --concurrent=NUM CONCURRENT users, default is 10
102
+ -u, --url=&quot;URL&quot; Deprecated. Set URL as the last argument.
103
+ -i, --internet INTERNET user simulation, hits the URLs randomly.
104
+ -b, --benchmark BENCHMARK, signifies no delay for time testing.
105
+ -t, --time=NUMm TIME based testing where &quot;m&quot; is the modifier S, M, or H
106
+ no space between NUM and &quot;m&quot;, ex: --time=1H, one hour test.
107
+ -r, --reps=NUM REPS, number of times to run the test, default is 25
108
+ -f, --file=FILE FILE, change the configuration file to file.
109
+ -R, --rc=FILE RC, change the siegerc file to file. Overrides
110
+ the SIEGERC environmental variable.
111
+ -l, --log LOG, logs the transaction to PREFIX/var/siege.log
112
+ -m, --mark=&quot;text&quot; MARK, mark the log file with a string separator.
113
+ -d, --delay=NUM Time DELAY, random delay between 1 and num designed
114
+ to simulate human activity. Default value is 3
115
+ -H, --header=&quot;text&quot; Add a header to request (can be many)
116
+ -A, --user-agent=&quot;text&quot; Sets User-Agent in request
117
+ </pre>
118
+
119
+ </div>
120
+
121
+
122
+ </div>
123
+
124
+ <div id="method-list">
125
+ <h3 class="section-bar">Methods</h3>
126
+
127
+ <div class="name-list">
128
+ <a href="#M000032">after</a>&nbsp;&nbsp;
129
+ <a href="#M000030">before</a>&nbsp;&nbsp;
130
+ <a href="#M000031">command</a>&nbsp;&nbsp;
131
+ <a href="#M000039">concurrent</a>&nbsp;&nbsp;
132
+ <a href="#M000040">concurrent_f</a>&nbsp;&nbsp;
133
+ <a href="#M000043">copy_siegerc</a>&nbsp;&nbsp;
134
+ <a href="#M000044">copy_urls_file</a>&nbsp;&nbsp;
135
+ <a href="#M000028">loadtest?</a>&nbsp;&nbsp;
136
+ <a href="#M000047">log_file</a>&nbsp;&nbsp;
137
+ <a href="#M000026">new</a>&nbsp;&nbsp;
138
+ <a href="#M000033">process_options</a>&nbsp;&nbsp;
139
+ <a href="#M000046">rc_file</a>&nbsp;&nbsp;
140
+ <a href="#M000029">ready?</a>&nbsp;&nbsp;
141
+ <a href="#M000041">reps</a>&nbsp;&nbsp;
142
+ <a href="#M000036">requests</a>&nbsp;&nbsp;
143
+ <a href="#M000037">requests=</a>&nbsp;&nbsp;
144
+ <a href="#M000049">stats</a>&nbsp;&nbsp;
145
+ <a href="#M000045">stats_file</a>&nbsp;&nbsp;
146
+ <a href="#M000042">update_orig_logfile</a>&nbsp;&nbsp;
147
+ <a href="#M000048">uris_file</a>&nbsp;&nbsp;
148
+ <a href="#M000027">version</a>&nbsp;&nbsp;
149
+ <a href="#M000038">vuser_requests</a>&nbsp;&nbsp;
150
+ <a href="#M000034">vusers</a>&nbsp;&nbsp;
151
+ <a href="#M000035">vusers=</a>&nbsp;&nbsp;
152
+ </div>
153
+ </div>
154
+
155
+ </div>
156
+
157
+
158
+ <!-- if includes -->
159
+
160
+ <div id="section">
161
+
162
+
163
+
164
+
165
+
166
+ <div id="attribute-list">
167
+ <h3 class="section-bar">Attributes</h3>
168
+
169
+ <div class="name-list">
170
+ <table>
171
+ <tr class="top-aligned-row context-row">
172
+ <td class="context-item-name">benchmark</td>
173
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
174
+ <td class="context-item-desc"></td>
175
+ </tr>
176
+ <tr class="top-aligned-row context-row">
177
+ <td class="context-item-name">concurrent</td>
178
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
179
+ <td class="context-item-desc"></td>
180
+ </tr>
181
+ <tr class="top-aligned-row context-row">
182
+ <td class="context-item-name">config</td>
183
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
184
+ <td class="context-item-desc"></td>
185
+ </tr>
186
+ <tr class="top-aligned-row context-row">
187
+ <td class="context-item-name">delay</td>
188
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
189
+ <td class="context-item-desc"></td>
190
+ </tr>
191
+ <tr class="top-aligned-row context-row">
192
+ <td class="context-item-name">file</td>
193
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
194
+ <td class="context-item-desc"></td>
195
+ </tr>
196
+ <tr class="top-aligned-row context-row">
197
+ <td class="context-item-name">get</td>
198
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
199
+ <td class="context-item-desc"></td>
200
+ </tr>
201
+ <tr class="top-aligned-row context-row">
202
+ <td class="context-item-name">header</td>
203
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
204
+ <td class="context-item-desc"></td>
205
+ </tr>
206
+ <tr class="top-aligned-row context-row">
207
+ <td class="context-item-name">help</td>
208
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
209
+ <td class="context-item-desc"></td>
210
+ </tr>
211
+ <tr class="top-aligned-row context-row">
212
+ <td class="context-item-name">internet</td>
213
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
214
+ <td class="context-item-desc"></td>
215
+ </tr>
216
+ <tr class="top-aligned-row context-row">
217
+ <td class="context-item-name">log</td>
218
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
219
+ <td class="context-item-desc"></td>
220
+ </tr>
221
+ <tr class="top-aligned-row context-row">
222
+ <td class="context-item-name">mark</td>
223
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
224
+ <td class="context-item-desc"></td>
225
+ </tr>
226
+ <tr class="top-aligned-row context-row">
227
+ <td class="context-item-name">rc</td>
228
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
229
+ <td class="context-item-desc"></td>
230
+ </tr>
231
+ <tr class="top-aligned-row context-row">
232
+ <td class="context-item-name">reps</td>
233
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
234
+ <td class="context-item-desc"></td>
235
+ </tr>
236
+ <tr class="top-aligned-row context-row">
237
+ <td class="context-item-name">time</td>
238
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
239
+ <td class="context-item-desc"></td>
240
+ </tr>
241
+ <tr class="top-aligned-row context-row">
242
+ <td class="context-item-name">user_agent</td>
243
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
244
+ <td class="context-item-desc"></td>
245
+ </tr>
246
+ <tr class="top-aligned-row context-row">
247
+ <td class="context-item-name">verbose</td>
248
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
249
+ <td class="context-item-desc"></td>
250
+ </tr>
251
+ <tr class="top-aligned-row context-row">
252
+ <td class="context-item-name">version</td>
253
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
254
+ <td class="context-item-desc"></td>
255
+ </tr>
256
+ </table>
257
+ </div>
258
+ </div>
259
+
260
+
261
+
262
+ <!-- if method_list -->
263
+ <div id="methods">
264
+ <h3 class="section-bar">Public Class methods</h3>
265
+
266
+ <div id="method-M000026" class="method-detail">
267
+ <a name="M000026"></a>
268
+
269
+ <div class="method-heading">
270
+ <a href="#M000026" class="method-signature">
271
+ <span class="method-name">new</span><span class="method-args">(options={}, arguments=[])</span>
272
+ </a>
273
+ </div>
274
+
275
+ <div class="method-description">
276
+ <p><a class="source-toggle" href="#"
277
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
278
+ <div class="method-source-code" id="M000026-source">
279
+ <pre>
280
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 39</span>
281
+ 39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>={}, <span class="ruby-identifier">arguments</span>=[])
282
+ 40: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">arguments</span>)
283
+ 41: <span class="ruby-ivar">@name</span> = <span class="ruby-value str">'siege'</span>
284
+ 42: <span class="ruby-ivar">@reps</span> = <span class="ruby-value">1</span>
285
+ 43: <span class="ruby-ivar">@concurrent</span> = <span class="ruby-value">1</span>
286
+ 44: <span class="ruby-ivar">@rc</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'HOME'</span>], <span class="ruby-value str">'.siegerc'</span>)
287
+ 45: <span class="ruby-ivar">@private_variables</span> = [<span class="ruby-value str">'private_variables'</span>, <span class="ruby-value str">'name'</span>, <span class="ruby-value str">'arguments'</span>, <span class="ruby-value str">'load_factor'</span>, <span class="ruby-value str">'working_directory'</span>, <span class="ruby-value str">'orig_logfile'</span>]
288
+ 46: <span class="ruby-ivar">@load_factor</span> = <span class="ruby-value">1</span>
289
+ 47: <span class="ruby-keyword kw">end</span>
290
+ </pre>
291
+ </div>
292
+ </div>
293
+ </div>
294
+
295
+ <h3 class="section-bar">Public Instance methods</h3>
296
+
297
+ <div id="method-M000032" class="method-detail">
298
+ <a name="M000032"></a>
299
+
300
+ <div class="method-heading">
301
+ <a href="#M000032" class="method-signature">
302
+ <span class="method-name">after</span><span class="method-args">()</span>
303
+ </a>
304
+ </div>
305
+
306
+ <div class="method-description">
307
+ <p>
308
+ After calling run
309
+ </p>
310
+ <p><a class="source-toggle" href="#"
311
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
312
+ <div class="method-source-code" id="M000032-source">
313
+ <pre>
314
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 110</span>
315
+ 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after</span>
316
+ 111:
317
+ 112: <span class="ruby-identifier">update_orig_logfile</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@orig_logfile</span>
318
+ 113:
319
+ 114: <span class="ruby-identifier">save_stats</span>
320
+ 115: <span class="ruby-keyword kw">end</span>
321
+ </pre>
322
+ </div>
323
+ </div>
324
+ </div>
325
+
326
+ <div id="method-M000030" class="method-detail">
327
+ <a name="M000030"></a>
328
+
329
+ <div class="method-heading">
330
+ <a href="#M000030" class="method-signature">
331
+ <span class="method-name">before</span><span class="method-args">()</span>
332
+ </a>
333
+ </div>
334
+
335
+ <div class="method-description">
336
+ <p>
337
+ Before calling run
338
+ </p>
339
+ <p><a class="source-toggle" href="#"
340
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
341
+ <div class="method-source-code" id="M000030-source">
342
+ <pre>
343
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 75</span>
344
+ 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before</span>
345
+ 76:
346
+ 77: <span class="ruby-comment cmt"># Keep a copy of the configuration file. </span>
347
+ 78: <span class="ruby-identifier">copy_siegerc</span>
348
+ 79:
349
+ 80: <span class="ruby-comment cmt"># Keep a copy of the URLs file.</span>
350
+ 81: <span class="ruby-identifier">copy_urls_file</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@file</span>
351
+ 82:
352
+ 83: <span class="ruby-comment cmt"># TODO: Print message about neither --benchmark or --internet</span>
353
+ 84: <span class="ruby-keyword kw">end</span>
354
+ </pre>
355
+ </div>
356
+ </div>
357
+ </div>
358
+
359
+ <div id="method-M000031" class="method-detail">
360
+ <a name="M000031"></a>
361
+
362
+ <div class="method-heading">
363
+ <a href="#M000031" class="method-signature">
364
+ <span class="method-name">command</span><span class="method-args">()</span>
365
+ </a>
366
+ </div>
367
+
368
+ <div class="method-description">
369
+ <p><a class="source-toggle" href="#"
370
+ onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
371
+ <div class="method-source-code" id="M000031-source">
372
+ <pre>
373
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 85</span>
374
+ 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command</span>
375
+ 86: <span class="ruby-identifier">raise</span> <span class="ruby-constant">CommandNotReady</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ready?</span>
376
+ 87:
377
+ 88: <span class="ruby-identifier">command</span> = <span class="ruby-node">&quot;#{@name} &quot;</span>
378
+ 89:
379
+ 90: <span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
380
+ 91: <span class="ruby-identifier">canon</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'@'</span>, <span class="ruby-value str">''</span>) <span class="ruby-comment cmt"># instance_variables returns '@name'</span>
381
+ 92: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@private_variables</span>.<span class="ruby-identifier">member?</span>(<span class="ruby-identifier">canon</span>)
382
+ 93:
383
+ 94: <span class="ruby-comment cmt"># It's important that we take the value from the getter method</span>
384
+ 95: <span class="ruby-comment cmt"># because it applies the load factor. </span>
385
+ 96: <span class="ruby-identifier">value</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">canon</span>)
386
+ 97: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>)
387
+ 98: <span class="ruby-identifier">value</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span> <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;--#{cannon.tr('_', '-')} '#{el}' &quot;</span> }
388
+ 99: <span class="ruby-keyword kw">else</span>
389
+ 100: <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;--#{canon.tr('_', '-')} '#{value}' &quot;</span>
390
+ 101: <span class="ruby-keyword kw">end</span>
391
+ 102:
392
+ 103: <span class="ruby-keyword kw">end</span>
393
+ 104:
394
+ 105: <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;'#{uri}'&quot;</span> }).<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">empty?</span>
395
+ 106: <span class="ruby-identifier">command</span>
396
+ 107: <span class="ruby-keyword kw">end</span>
397
+ </pre>
398
+ </div>
399
+ </div>
400
+ </div>
401
+
402
+ <div id="method-M000039" class="method-detail">
403
+ <a name="M000039"></a>
404
+
405
+ <div class="method-heading">
406
+ <a href="#M000039" class="method-signature">
407
+ <span class="method-name">concurrent</span><span class="method-args">()</span>
408
+ </a>
409
+ </div>
410
+
411
+ <div class="method-description">
412
+ <p><a class="source-toggle" href="#"
413
+ onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
414
+ <div class="method-source-code" id="M000039-source">
415
+ <pre>
416
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 170</span>
417
+ 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concurrent</span>
418
+ 171: (<span class="ruby-ivar">@concurrent</span> <span class="ruby-operator">*</span> <span class="ruby-ivar">@load_factor</span>).<span class="ruby-identifier">to_i</span>
419
+ 172: <span class="ruby-keyword kw">end</span>
420
+ </pre>
421
+ </div>
422
+ </div>
423
+ </div>
424
+
425
+ <div id="method-M000040" class="method-detail">
426
+ <a name="M000040"></a>
427
+
428
+ <div class="method-heading">
429
+ <a href="#M000040" class="method-signature">
430
+ <span class="method-name">concurrent_f</span><span class="method-args">()</span>
431
+ </a>
432
+ </div>
433
+
434
+ <div class="method-description">
435
+ <p><a class="source-toggle" href="#"
436
+ onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
437
+ <div class="method-source-code" id="M000040-source">
438
+ <pre>
439
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 173</span>
440
+ 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concurrent_f</span>
441
+ 174: (<span class="ruby-ivar">@concurrent</span> <span class="ruby-operator">*</span> <span class="ruby-ivar">@load_factor</span>).<span class="ruby-identifier">to_f</span>
442
+ 175: <span class="ruby-keyword kw">end</span>
443
+ </pre>
444
+ </div>
445
+ </div>
446
+ </div>
447
+
448
+ <div id="method-M000043" class="method-detail">
449
+ <a name="M000043"></a>
450
+
451
+ <div class="method-heading">
452
+ <a href="#M000043" class="method-signature">
453
+ <span class="method-name">copy_siegerc</span><span class="method-args">()</span>
454
+ </a>
455
+ </div>
456
+
457
+ <div class="method-description">
458
+ <p>
459
+ We want to keep a copy of the configuration file and also modify it a
460
+ little bit to make sure we get all the mad info from siege
461
+ </p>
462
+ <p><a class="source-toggle" href="#"
463
+ onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
464
+ <div class="method-source-code" id="M000043-source">
465
+ <pre>
466
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 200</span>
467
+ 200: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy_siegerc</span>
468
+ 201:
469
+ 202: <span class="ruby-comment cmt"># Read in the siegerc file so we can manipulate it</span>
470
+ 203: <span class="ruby-identifier">siegerc_str</span> = <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">read_file</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@rc</span>))
471
+ 204:
472
+ 205: <span class="ruby-identifier">siegerc_vars</span> = {
473
+ 206: <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>], <span class="ruby-comment cmt"># We want to maximize the data output by siege</span>
474
+ 207: <span class="ruby-identifier">:logging</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>],
475
+ 208: <span class="ruby-identifier">:csv</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>]
476
+ 209: }
477
+ 210:
478
+ 211: <span class="ruby-comment cmt">#if (@agent)</span>
479
+ 212: <span class="ruby-comment cmt"># siegerc_vars['user-agent'] = ['.*', 'dogs2']</span>
480
+ 213: <span class="ruby-comment cmt">#end</span>
481
+ 214:
482
+ 215: <span class="ruby-comment cmt"># We'll set the variables in the siegerc file</span>
483
+ 216: <span class="ruby-identifier">siegerc_vars</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span>,<span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
484
+ 217: <span class="ruby-identifier">siegerc_str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/#{var}\s*=\s*#{value[0]}/</span>, <span class="ruby-node">&quot;#{var} = #{value[1]}&quot;</span>) <span class="ruby-comment cmt"># make true</span>
485
+ 218: <span class="ruby-identifier">siegerc_str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/^\#+\s*#{var}/</span>, <span class="ruby-node">&quot;#{var}&quot;</span>) <span class="ruby-comment cmt"># remove comment</span>
486
+ 219: <span class="ruby-keyword kw">end</span>
487
+ 220:
488
+ 221: <span class="ruby-comment cmt"># Look for the enabled logile path</span>
489
+ 222: <span class="ruby-comment cmt"># We will use this later to update it from the last line in our copy</span>
490
+ 223: <span class="ruby-identifier">siegerc_str</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s*logfile\s*=\s*(.+?)$/</span>
491
+ 224: <span class="ruby-ivar">@orig_logfile</span> = <span class="ruby-identifier">$1</span> <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
492
+ 225:
493
+ 226: <span class="ruby-comment cmt"># Replace all environment variables with literal values</span>
494
+ 227: <span class="ruby-ivar">@orig_logfile</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\$\{#{$1}\}/</span>, <span class="ruby-constant">ENV</span>[<span class="ruby-identifier">$1</span>]) <span class="ruby-keyword kw">while</span> (<span class="ruby-ivar">@orig_logfile</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\$\{(.+?)\}/</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">$1</span>))
495
+ 228:
496
+ 229: <span class="ruby-ivar">@orig_logfile</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@orig_logfile</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@orig_logfile</span>
497
+ 230:
498
+ 231:
499
+ 232: <span class="ruby-identifier">siegerc_str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^\#*\s*logfile\s*=\s*.*?$/</span>, <span class="ruby-value str">&quot;logfile = &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">log_file</span>)
500
+ 233:
501
+ 234: <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">write_file</span>(<span class="ruby-identifier">rc_file</span>, <span class="ruby-identifier">siegerc_str</span>, <span class="ruby-keyword kw">true</span>)
502
+ 235: <span class="ruby-ivar">@rc</span> = <span class="ruby-identifier">rc_file</span>
503
+ 236: <span class="ruby-keyword kw">end</span>
504
+ </pre>
505
+ </div>
506
+ </div>
507
+ </div>
508
+
509
+ <div id="method-M000044" class="method-detail">
510
+ <a name="M000044"></a>
511
+
512
+ <div class="method-heading">
513
+ <a href="#M000044" class="method-signature">
514
+ <span class="method-name">copy_urls_file</span><span class="method-args">()</span>
515
+ </a>
516
+ </div>
517
+
518
+ <div class="method-description">
519
+ <p>
520
+ We want to keep a copy of the URLs file too
521
+ </p>
522
+ <p><a class="source-toggle" href="#"
523
+ onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
524
+ <div class="method-source-code" id="M000044-source">
525
+ <pre>
526
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 239</span>
527
+ 239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy_urls_file</span>
528
+ 240: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@file</span>
529
+ 241: <span class="ruby-constant">File</span>.<span class="ruby-identifier">copy</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@file</span>), <span class="ruby-identifier">uris_file</span>)
530
+ 242: <span class="ruby-ivar">@file</span> = <span class="ruby-identifier">uris_file</span>
531
+ 243: <span class="ruby-keyword kw">end</span>
532
+ 244: <span class="ruby-keyword kw">end</span>
533
+ </pre>
534
+ </div>
535
+ </div>
536
+ </div>
537
+
538
+ <div id="method-M000028" class="method-detail">
539
+ <a name="M000028"></a>
540
+
541
+ <div class="method-heading">
542
+ <a href="#M000028" class="method-signature">
543
+ <span class="method-name">loadtest?</span><span class="method-args">()</span>
544
+ </a>
545
+ </div>
546
+
547
+ <div class="method-description">
548
+ <p>
549
+ loadtest
550
+ </p>
551
+ <p>
552
+ True or false: is the call to siege a load test? If it&#8216;s a call to
553
+ help or <a href="Siege.html#M000027">version</a> or to display the config
554
+ this with return false. It&#8216;s no reason for someone to make this call
555
+ through <a href="../../Stella.html">Stella</a> but it&#8216;s here for
556
+ goodness sake.
557
+ </p>
558
+ <p><a class="source-toggle" href="#"
559
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
560
+ <div class="method-source-code" id="M000028-source">
561
+ <pre>
562
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 65</span>
563
+ 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loadtest?</span>
564
+ 66: <span class="ruby-operator">!</span><span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-comment cmt"># The argument is a URI</span>
565
+ 67: <span class="ruby-keyword kw">end</span>
566
+ </pre>
567
+ </div>
568
+ </div>
569
+ </div>
570
+
571
+ <div id="method-M000047" class="method-detail">
572
+ <a name="M000047"></a>
573
+
574
+ <div class="method-heading">
575
+ <a href="#M000047" class="method-signature">
576
+ <span class="method-name">log_file</span><span class="method-args">()</span>
577
+ </a>
578
+ </div>
579
+
580
+ <div class="method-description">
581
+ <p><a class="source-toggle" href="#"
582
+ onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
583
+ <div class="method-source-code" id="M000047-source">
584
+ <pre>
585
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 255</span>
586
+ 255: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log_file</span>
587
+ 256: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@working_directory</span>, <span class="ruby-value str">&quot;siege.log&quot;</span>)
588
+ 257: <span class="ruby-keyword kw">end</span>
589
+ </pre>
590
+ </div>
591
+ </div>
592
+ </div>
593
+
594
+ <div id="method-M000033" class="method-detail">
595
+ <a name="M000033"></a>
596
+
597
+ <div class="method-heading">
598
+ <a href="#M000033" class="method-signature">
599
+ <span class="method-name">process_options</span><span class="method-args">(arguments)</span>
600
+ </a>
601
+ </div>
602
+
603
+ <div class="method-description">
604
+ <p><a class="source-toggle" href="#"
605
+ onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
606
+ <div class="method-source-code" id="M000033-source">
607
+ <pre>
608
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 118</span>
609
+ 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_options</span>(<span class="ruby-identifier">arguments</span>)
610
+ 119: <span class="ruby-identifier">options</span> = <span class="ruby-constant">OpenStruct</span>.<span class="ruby-identifier">new</span>
611
+ 120: <span class="ruby-identifier">opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
612
+ 121: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-V'</span>, <span class="ruby-value str">'--version'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">version</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
613
+ 122: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">help</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
614
+ 123: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-C'</span>, <span class="ruby-value str">'--config'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">config</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
615
+ 124: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-v'</span>, <span class="ruby-value str">'--verbose'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">verbose</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
616
+ 125: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-g'</span>, <span class="ruby-value str">'--get'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">get</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
617
+ 126: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-l'</span>, <span class="ruby-value str">'--log'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">log</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
618
+ 127: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-m S'</span>, <span class="ruby-value str">'--mark=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">mark</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
619
+ 128: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-d N'</span>, <span class="ruby-value str">'--delay=N'</span>, <span class="ruby-constant">Float</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delay</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
620
+ 129: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-H S'</span>, <span class="ruby-value str">'--header=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">header</span> <span class="ruby-operator">||=</span> []; <span class="ruby-identifier">options</span>.<span class="ruby-identifier">header</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
621
+ 130:
622
+ 131: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-r N'</span>, <span class="ruby-value str">'--reps=N'</span>, <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reps</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-keyword kw">end</span>
623
+ 132: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-c N'</span>, <span class="ruby-value str">'--concurrent=N'</span>, <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">concurrent</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-keyword kw">end</span>
624
+ 133: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-R S'</span>, <span class="ruby-value str">'--rc=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">rc</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
625
+ 134: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-f S'</span>, <span class="ruby-value str">'--file=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">file</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
626
+ 135: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-t S'</span>, <span class="ruby-value str">'--time=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">time</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
627
+ 136: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-b'</span>, <span class="ruby-value str">'--benchmark'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">benchmark</span> = <span class="ruby-keyword kw">true</span>; <span class="ruby-keyword kw">end</span>
628
+ 137: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-i'</span>, <span class="ruby-value str">'--internet'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">internet</span> = <span class="ruby-keyword kw">true</span>; <span class="ruby-keyword kw">end</span>
629
+ 138: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-A S'</span>, <span class="ruby-value str">'--user-agent=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">user_agent</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
630
+ 139:
631
+ 140: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;You cannot select both --internet and --benchmark&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">internet</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">benchmark</span>
632
+ 141:
633
+ 142: <span class="ruby-comment cmt"># parse! removes the options it finds.</span>
634
+ 143: <span class="ruby-comment cmt"># It also fails when it finds unknown switches (i.e. -X)</span>
635
+ 144: <span class="ruby-comment cmt"># Which should leave only the remaining arguments (URIs in this case)</span>
636
+ 145: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span>(<span class="ruby-identifier">arguments</span>)
637
+ 146: <span class="ruby-identifier">options</span>
638
+ 147: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidOption</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
639
+ 148: <span class="ruby-comment cmt"># We want to replace this text so we grab just the name of the argument</span>
640
+ 149: <span class="ruby-identifier">badarg</span> = <span class="ruby-identifier">ex</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'invalid option: '</span>, <span class="ruby-value str">''</span>)
641
+ 150: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidArgument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">badarg</span>)
642
+ 151: <span class="ruby-keyword kw">end</span>
643
+ </pre>
644
+ </div>
645
+ </div>
646
+ </div>
647
+
648
+ <div id="method-M000046" class="method-detail">
649
+ <a name="M000046"></a>
650
+
651
+ <div class="method-heading">
652
+ <a href="#M000046" class="method-signature">
653
+ <span class="method-name">rc_file</span><span class="method-args">()</span>
654
+ </a>
655
+ </div>
656
+
657
+ <div class="method-description">
658
+ <p><a class="source-toggle" href="#"
659
+ onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
660
+ <div class="method-source-code" id="M000046-source">
661
+ <pre>
662
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 251</span>
663
+ 251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rc_file</span>
664
+ 252: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@working_directory</span>, <span class="ruby-value str">&quot;siegerc&quot;</span>)
665
+ 253: <span class="ruby-keyword kw">end</span>
666
+ </pre>
667
+ </div>
668
+ </div>
669
+ </div>
670
+
671
+ <div id="method-M000029" class="method-detail">
672
+ <a name="M000029"></a>
673
+
674
+ <div class="method-heading">
675
+ <a href="#M000029" class="method-signature">
676
+ <span class="method-name">ready?</span><span class="method-args">()</span>
677
+ </a>
678
+ </div>
679
+
680
+ <div class="method-description">
681
+ <p><a class="source-toggle" href="#"
682
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
683
+ <div class="method-source-code" id="M000029-source">
684
+ <pre>
685
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 69</span>
686
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ready?</span>
687
+ 70: <span class="ruby-ivar">@name</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">empty?</span>
688
+ 71: <span class="ruby-keyword kw">end</span>
689
+ </pre>
690
+ </div>
691
+ </div>
692
+ </div>
693
+
694
+ <div id="method-M000041" class="method-detail">
695
+ <a name="M000041"></a>
696
+
697
+ <div class="method-heading">
698
+ <a href="#M000041" class="method-signature">
699
+ <span class="method-name">reps</span><span class="method-args">()</span>
700
+ </a>
701
+ </div>
702
+
703
+ <div class="method-description">
704
+ <p><a class="source-toggle" href="#"
705
+ onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
706
+ <div class="method-source-code" id="M000041-source">
707
+ <pre>
708
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 176</span>
709
+ 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reps</span>
710
+ 177: <span class="ruby-ivar">@reps</span>
711
+ 178: <span class="ruby-keyword kw">end</span>
712
+ </pre>
713
+ </div>
714
+ </div>
715
+ </div>
716
+
717
+ <div id="method-M000036" class="method-detail">
718
+ <a name="M000036"></a>
719
+
720
+ <div class="method-heading">
721
+ <a href="#M000036" class="method-signature">
722
+ <span class="method-name">requests</span><span class="method-args">()</span>
723
+ </a>
724
+ </div>
725
+
726
+ <div class="method-description">
727
+ <p><a class="source-toggle" href="#"
728
+ onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
729
+ <div class="method-source-code" id="M000036-source">
730
+ <pre>
731
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 160</span>
732
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">requests</span>
733
+ 161: (<span class="ruby-ivar">@reps</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">concurrent_f</span>).<span class="ruby-identifier">to_i</span>
734
+ 162: <span class="ruby-keyword kw">end</span>
735
+ </pre>
736
+ </div>
737
+ </div>
738
+ </div>
739
+
740
+ <div id="method-M000037" class="method-detail">
741
+ <a name="M000037"></a>
742
+
743
+ <div class="method-heading">
744
+ <a href="#M000037" class="method-signature">
745
+ <span class="method-name">requests=</span><span class="method-args">(v)</span>
746
+ </a>
747
+ </div>
748
+
749
+ <div class="method-description">
750
+ <p><a class="source-toggle" href="#"
751
+ onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
752
+ <div class="method-source-code" id="M000037-source">
753
+ <pre>
754
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 163</span>
755
+ 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">requests=</span>(<span class="ruby-identifier">v</span>)
756
+ 164: <span class="ruby-ivar">@reps</span> = (<span class="ruby-identifier">v</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">concurrent_f</span>).<span class="ruby-identifier">to_i</span>
757
+ 165: <span class="ruby-keyword kw">end</span>
758
+ </pre>
759
+ </div>
760
+ </div>
761
+ </div>
762
+
763
+ <div id="method-M000049" class="method-detail">
764
+ <a name="M000049"></a>
765
+
766
+ <div class="method-heading">
767
+ <a href="#M000049" class="method-signature">
768
+ <span class="method-name">stats</span><span class="method-args">()</span>
769
+ </a>
770
+ </div>
771
+
772
+ <div class="method-description">
773
+ <p><a class="source-toggle" href="#"
774
+ onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
775
+ <div class="method-source-code" id="M000049-source">
776
+ <pre>
777
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 263</span>
778
+ 263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats</span>
779
+ 264: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">stats_file</span>
780
+ 265: <span class="ruby-identifier">raw</span> = {}
781
+ 266: <span class="ruby-identifier">stats_file</span>.<span class="ruby-identifier">each_line</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
782
+ 267: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">chomp!</span>
783
+ 268: <span class="ruby-identifier">nvpair</span> = <span class="ruby-identifier">l</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)
784
+ 269: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">nvpair</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">nvpair</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
785
+ 270: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">nvpair</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'_'</span>).<span class="ruby-identifier">downcase</span>[<span class="ruby-regexp re">/\w+/</span>]
786
+ 271: <span class="ruby-identifier">v</span> = <span class="ruby-identifier">nvpair</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">strip</span>[<span class="ruby-regexp re">/[\.\d]+/</span>]
787
+ 272: <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_f</span>
788
+ 273: }
789
+ 274:
790
+ 275: <span class="ruby-identifier">stats</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Test</span><span class="ruby-operator">::</span><span class="ruby-constant">RunSummary</span>.<span class="ruby-identifier">new</span>
791
+ 276:
792
+ 277: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">vusers</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:concurrency</span>]
793
+ 278: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">data_transferred</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:data_transferred</span>]
794
+ 279:
795
+ 280:
796
+ 281: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">elapsed_time</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:elapsed_time</span>]
797
+ 282: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">response_time</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:response_time</span>]
798
+ 283:
799
+ 284: <span class="ruby-comment cmt">#stats.shortest_transaction = raw[:shortest_transaction]</span>
800
+ 285: <span class="ruby-comment cmt">#stats.longest_transaction = raw[:longest_transaction]</span>
801
+ 286:
802
+ 287: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">transactions</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:transactions</span>].<span class="ruby-identifier">to_i</span>
803
+ 288: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">transaction_rate</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:transaction_rate</span>]
804
+ 289: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">failed</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:failed_transactions</span>].<span class="ruby-identifier">to_i</span>
805
+ 290: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">successful</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:successful_transactions</span>].<span class="ruby-identifier">to_i</span>
806
+ 291: <span class="ruby-comment cmt">#stats.raw = raw if @global_options.debug</span>
807
+ 292: <span class="ruby-identifier">stats</span>
808
+ 293: <span class="ruby-keyword kw">end</span>
809
+ </pre>
810
+ </div>
811
+ </div>
812
+ </div>
813
+
814
+ <div id="method-M000045" class="method-detail">
815
+ <a name="M000045"></a>
816
+
817
+ <div class="method-heading">
818
+ <a href="#M000045" class="method-signature">
819
+ <span class="method-name">stats_file</span><span class="method-args">()</span>
820
+ </a>
821
+ </div>
822
+
823
+ <div class="method-description">
824
+ <p>
825
+ <a href="Siege.html">Siege</a> writes the summary to STDERR
826
+ </p>
827
+ <p><a class="source-toggle" href="#"
828
+ onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
829
+ <div class="method-source-code" id="M000045-source">
830
+ <pre>
831
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 247</span>
832
+ 247: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats_file</span>
833
+ 248: <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">stderr_path</span>)
834
+ 249: <span class="ruby-keyword kw">end</span>
835
+ </pre>
836
+ </div>
837
+ </div>
838
+ </div>
839
+
840
+ <div id="method-M000042" class="method-detail">
841
+ <a name="M000042"></a>
842
+
843
+ <div class="method-heading">
844
+ <a href="#M000042" class="method-signature">
845
+ <span class="method-name">update_orig_logfile</span><span class="method-args">()</span>
846
+ </a>
847
+ </div>
848
+
849
+ <div class="method-description">
850
+ <p>
851
+ Take the last line of the siege.log file and write it to the log file
852
+ specified by the user. We don&#8216;t this so running with <a
853
+ href="../../Stella.html">Stella</a> is identical to running it standalone
854
+ </p>
855
+ <p><a class="source-toggle" href="#"
856
+ onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
857
+ <div class="method-source-code" id="M000042-source">
858
+ <pre>
859
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 184</span>
860
+ 184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_orig_logfile</span>
861
+ 185:
862
+ 186: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@orig_logfile</span>)
863
+ 187: <span class="ruby-identifier">log_str</span> = <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">read_file_to_array</span>(<span class="ruby-identifier">log_file</span>) <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
864
+ 188: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">log_str</span>.<span class="ruby-identifier">empty?</span>
865
+ 189:
866
+ 190: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-ivar">@orig_logfile</span>)
867
+ 191: <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">append_file</span>(<span class="ruby-ivar">@orig_logfile</span>, <span class="ruby-identifier">log_str</span>[<span class="ruby-value">-1</span>], <span class="ruby-keyword kw">true</span>)
868
+ 192: <span class="ruby-keyword kw">else</span>
869
+ 193: <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">write_file</span>(<span class="ruby-ivar">@orig_logfile</span>, <span class="ruby-identifier">log_str</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">''</span>), <span class="ruby-keyword kw">true</span>)
870
+ 194: <span class="ruby-keyword kw">end</span>
871
+ 195:
872
+ 196: <span class="ruby-keyword kw">end</span>
873
+ </pre>
874
+ </div>
875
+ </div>
876
+ </div>
877
+
878
+ <div id="method-M000048" class="method-detail">
879
+ <a name="M000048"></a>
880
+
881
+ <div class="method-heading">
882
+ <a href="#M000048" class="method-signature">
883
+ <span class="method-name">uris_file</span><span class="method-args">()</span>
884
+ </a>
885
+ </div>
886
+
887
+ <div class="method-description">
888
+ <p><a class="source-toggle" href="#"
889
+ onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
890
+ <div class="method-source-code" id="M000048-source">
891
+ <pre>
892
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 259</span>
893
+ 259: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uris_file</span>
894
+ 260: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@working_directory</span>, <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@file</span>))
895
+ 261: <span class="ruby-keyword kw">end</span>
896
+ </pre>
897
+ </div>
898
+ </div>
899
+ </div>
900
+
901
+ <div id="method-M000027" class="method-detail">
902
+ <a name="M000027"></a>
903
+
904
+ <div class="method-heading">
905
+ <a href="#M000027" class="method-signature">
906
+ <span class="method-name">version</span><span class="method-args">()</span>
907
+ </a>
908
+ </div>
909
+
910
+ <div class="method-description">
911
+ <p><a class="source-toggle" href="#"
912
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
913
+ <div class="method-source-code" id="M000027-source">
914
+ <pre>
915
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 50</span>
916
+ 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
917
+ 51: <span class="ruby-identifier">vsn</span> = <span class="ruby-value">0</span>
918
+ 52: <span class="ruby-identifier">text</span> = <span class="ruby-value str">&quot;&quot;</span>
919
+ 53: <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-node">&quot;#{@name} --version&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span><span class="ruby-operator">|</span>
920
+ 54: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">readlines</span>.<span class="ruby-identifier">join</span>
921
+ 55: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/SIEGE (\d+?\.\d+)/</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">vsn</span> = <span class="ruby-identifier">v</span>[<span class="ruby-value">0</span>] }
922
+ 56: <span class="ruby-keyword kw">end</span>
923
+ 57: <span class="ruby-identifier">vsn</span>
924
+ 58: <span class="ruby-keyword kw">end</span>
925
+ </pre>
926
+ </div>
927
+ </div>
928
+ </div>
929
+
930
+ <div id="method-M000038" class="method-detail">
931
+ <a name="M000038"></a>
932
+
933
+ <div class="method-heading">
934
+ <a href="#M000038" class="method-signature">
935
+ <span class="method-name">vuser_requests</span><span class="method-args">()</span>
936
+ </a>
937
+ </div>
938
+
939
+ <div class="method-description">
940
+ <p><a class="source-toggle" href="#"
941
+ onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
942
+ <div class="method-source-code" id="M000038-source">
943
+ <pre>
944
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 166</span>
945
+ 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vuser_requests</span>
946
+ 167: <span class="ruby-ivar">@reps</span>
947
+ 168: <span class="ruby-keyword kw">end</span>
948
+ </pre>
949
+ </div>
950
+ </div>
951
+ </div>
952
+
953
+ <div id="method-M000034" class="method-detail">
954
+ <a name="M000034"></a>
955
+
956
+ <div class="method-heading">
957
+ <a href="#M000034" class="method-signature">
958
+ <span class="method-name">vusers</span><span class="method-args">()</span>
959
+ </a>
960
+ </div>
961
+
962
+ <div class="method-description">
963
+ <p><a class="source-toggle" href="#"
964
+ onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
965
+ <div class="method-source-code" id="M000034-source">
966
+ <pre>
967
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 154</span>
968
+ 154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vusers</span>
969
+ 155: <span class="ruby-identifier">concurrent</span> <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
970
+ 156: <span class="ruby-keyword kw">end</span>
971
+ </pre>
972
+ </div>
973
+ </div>
974
+ </div>
975
+
976
+ <div id="method-M000035" class="method-detail">
977
+ <a name="M000035"></a>
978
+
979
+ <div class="method-heading">
980
+ <a href="#M000035" class="method-signature">
981
+ <span class="method-name">vusers=</span><span class="method-args">(v)</span>
982
+ </a>
983
+ </div>
984
+
985
+ <div class="method-description">
986
+ <p><a class="source-toggle" href="#"
987
+ onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
988
+ <div class="method-source-code" id="M000035-source">
989
+ <pre>
990
+ <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 157</span>
991
+ 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vusers=</span>(<span class="ruby-identifier">v</span>)
992
+ 158: <span class="ruby-ivar">@concurrent</span> = <span class="ruby-identifier">v</span>
993
+ 159: <span class="ruby-keyword kw">end</span>
994
+ </pre>
995
+ </div>
996
+ </div>
997
+ </div>
998
+
999
+
1000
+ </div>
1001
+
1002
+
1003
+ </div>
1004
+
1005
+
1006
+ <div id="validator-badges">
1007
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1008
+ </div>
1009
+
1010
+ </body>
1011
+ </html>