tsung_stats_server 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/LICENSE +9 -0
  2. data/README +11 -0
  3. data/Rakefile +10 -0
  4. data/bin/tsung_stats_server +28 -0
  5. data/doc/README.html +46 -0
  6. data/doc/TSSApp.html +793 -0
  7. data/doc/all-files.html +23 -0
  8. data/doc/all-methods.html +42 -0
  9. data/doc/all-namespaces.html +24 -0
  10. data/doc/api/apple-touch-icon.png +0 -0
  11. data/doc/api/classes/Object.html +117 -0
  12. data/doc/api/classes/TSSApp.html +147 -0
  13. data/doc/api/created.rid +1 -0
  14. data/doc/api/css/main.css +263 -0
  15. data/doc/api/css/panel.css +383 -0
  16. data/doc/api/css/reset.css +53 -0
  17. data/doc/api/favicon.ico +0 -0
  18. data/doc/api/files/LICENSE.html +84 -0
  19. data/doc/api/files/README.html +77 -0
  20. data/doc/api/files/Rakefile.html +72 -0
  21. data/doc/api/files/lib/tsung_stats_server_rb.html +61 -0
  22. data/doc/api/files/lib/webapp_rb.html +74 -0
  23. data/doc/api/i/arrows.png +0 -0
  24. data/doc/api/i/results_bg.png +0 -0
  25. data/doc/api/i/tree_bg.png +0 -0
  26. data/doc/api/index.html +14 -0
  27. data/doc/api/js/jquery-1.3.2.min.js +19 -0
  28. data/doc/api/js/jquery-effect.js +593 -0
  29. data/doc/api/js/main.js +22 -0
  30. data/doc/api/js/searchdoc.js +628 -0
  31. data/doc/api/panel/index.html +71 -0
  32. data/doc/api/panel/search_index.js +1 -0
  33. data/doc/api/panel/tree.js +1 -0
  34. data/doc/app.js +18 -0
  35. data/doc/custom.css +1 -0
  36. data/doc/history.erb +16 -0
  37. data/doc/index.erb +6 -0
  38. data/doc/index.html +19 -0
  39. data/doc/index.xhtml +221 -0
  40. data/doc/intro.erb +76 -0
  41. data/doc/jquery.js +11 -0
  42. data/doc/setup.erb +33 -0
  43. data/doc/style.css +81 -0
  44. data/doc/syntax_highlight.css +24 -0
  45. data/doc/theory.erb +3 -0
  46. data/doc/top-level-namespace.html +25 -0
  47. data/doc/usage.erb +23 -0
  48. data/lib/tsung_stats_server.rb +15 -0
  49. data/lib/webapp.rb +134 -0
  50. data/test/tsung_stats_server.rb +13 -0
  51. metadata +153 -0
data/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ (the MIT license)
2
+
3
+ Copyright 2009 Florian Gilcher <flo@andersground.net>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,11 @@
1
+ Tsung Stats Server is a small Sinatra application that handles 3 Tasks:
2
+
3
+ * Listing all Tsung logs present on a machine.
4
+ * Transforming the logs to graphical statistics on demand by using **tsung\_stats.pl**.
5
+ * Providing a zipped download of the logs.
6
+
7
+ You can see the command line arguments by calling:
8
+
9
+ tsung_log_server --help
10
+
11
+
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'lib/tsung_stats_server'
3
+
4
+ Inochi.rake :TsungStatsServer,
5
+ :rubyforge_project => 'skadesgems',
6
+ :rubyforge_section => 'tsung_stats_server'
7
+
8
+ require 'wilson'
9
+
10
+ YARD::Rake::YardocTask.new
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Usage:
4
+ #
5
+ # tsung_stats_server [Options]
6
+ #
7
+ #
8
+ # Options:
9
+ #
10
+ # --logdir: Log directory to use instead of the default directory
11
+ # --tsung_stats: Command to call tsung_stats.pl
12
+ # --port: The port to run the server on
13
+ #
14
+
15
+ require 'rubygems'
16
+
17
+ #gem 'inochi', '~> 0'
18
+ require 'inochi'
19
+
20
+ COMMAND_LINE = Inochi.main :TsungStatsServer do
21
+ opt :logdir, "Log directory to use instead of the default directory", :default => File.expand_path("~/.tsung/log")
22
+ opt :tsung_stats, "Command to call tsung_stats.pl", :default => "perl -S /usr/lib/tsung/bin/tsung_stats.pl"
23
+ opt :port, "The port to run the server on", :default => 1789
24
+ end
25
+
26
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'webapp')
27
+
28
+ Rack::Handler::WEBrick.run TSSApp, :Port => COMMAND_LINE.port
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
6
+ <link rel="stylesheet" href="style.css" type="text/css" charset="utf-8" />
7
+ <link rel="stylesheet" href="custom.css" type="text/css" charset="utf-8" />
8
+ <link rel="stylesheet" href="syntax_highlight.css" type="text/css" charset="utf-8" />
9
+
10
+ <title>README</title>
11
+ </head>
12
+ <body>
13
+ <div id="content">
14
+ <div class="section docstring readme">
15
+ <p>
16
+ Tsung Stats Server is a small Sinatra application that handles 3 Tasks:
17
+ </p>
18
+ <ul>
19
+ <li>Listing all Tsung logs present on a machine.
20
+
21
+ </li>
22
+ <li>Transforming the logs to graphical statistics on demand by using
23
+ **tsung_stats.pl**.
24
+
25
+ </li>
26
+ <li>Providing a zipped download of the logs.
27
+
28
+ </li>
29
+ </ul>
30
+ <p>
31
+ You can see the command line arguments by calling:
32
+ </p>
33
+ <pre class="code">
34
+ <span class='id tsung_log_server'>tsung_log_server</span> <span class='op'>-</span><span class='op'>-</span><span class='id help'>help</span>
35
+ </pre>
36
+
37
+ </div>
38
+ </div>
39
+ <div id="yard_info">
40
+ Generated on Tuesday, July 21 2009 at 11:24:31 PM by
41
+ <abbr class="yard" title="Yay! A Ruby Documentation Tool"><a href="http://yard.soen.ca">YARD</a></abbr>
42
+ 0.2.3.2 (ruby-1.9.1).
43
+ </div>
44
+
45
+ </body>
46
+ </html>
@@ -0,0 +1,793 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
6
+ <link rel="stylesheet" href="style.css" type="text/css" charset="utf-8" />
7
+ <link rel="stylesheet" href="custom.css" type="text/css" charset="utf-8" />
8
+ <link rel="stylesheet" href="syntax_highlight.css" type="text/css" charset="utf-8" />
9
+
10
+ <script src="jquery.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="app.js" type="text/javascript" charset="utf-8"></script>
12
+ <title>Class: TSSApp</title>
13
+ </head>
14
+ <body>
15
+ <div id="content">
16
+ <div class="section class TSSApp">
17
+ <h1 class="title">Class: TSSApp</h1>
18
+ <div class="section inheritance">
19
+ <ul>
20
+ <li>Sinatra::Application</li><ul><li>TSSApp</li>
21
+ </ul></ul>
22
+ </div><div class="section mixins">
23
+ <h1>Included Modules</h1>
24
+ <p>Wilson::Web</p>
25
+ </div>
26
+ <div class="section docstring">
27
+ <p>
28
+ The TSSApp class serves log files generated by the Tsung stress testing
29
+ tool.
30
+ </p>
31
+
32
+ </div><div class="section tags">
33
+ <h2>Meta Tags</h2>
34
+ <div class="resources">
35
+
36
+ <h3>Resource: <small>xml</small></h3>
37
+ <div class="docstring">
38
+ <pre class="code"> <span style="color:#F00;background-color:#FAA">&lt;</span>?xml encoding=&quot;utf-8&quot;<span style="color:#F00;background-color:#FAA">&gt;</span>
39
+ <span style="color:#070">&lt;report&gt;</span>
40
+ bla
41
+ <span style="color:#070">&lt;/report&gt;</span></pre>
42
+ </div>
43
+
44
+ </div>
45
+
46
+ </div><div class="section constants">
47
+
48
+ </div><div class="section routes">
49
+ <h1>Sinatra Routes</h1>
50
+
51
+
52
+ <div class="section method">
53
+ <div class="details_title">
54
+ <h1>/</h1>
55
+ <div class="section docstring">
56
+ <p>
57
+ Shows the list of all logs present on the machine.
58
+ </p>
59
+
60
+ </div><div class="section tags">
61
+ <h2>Meta Tags</h2>
62
+ <div class="output_types">
63
+ <h3>Output Types:</h3>
64
+ <dl>
65
+
66
+ <dt>
67
+
68
+ <span class='type'>[<tt>text/html</tt>]</span>
69
+
70
+
71
+ <span class='name'></span>
72
+
73
+
74
+ </dt>
75
+ <dd>
76
+ <span class='desc'></span>
77
+ </dd>
78
+
79
+ </dl>
80
+ </div>
81
+ <div class="output_languages">
82
+ <h3>Output Languages:</h3>
83
+ <dl>
84
+
85
+ <dt>
86
+
87
+ <span class='type'>[<tt>en-US</tt>]</span>
88
+
89
+
90
+ <span class='name'></span>
91
+
92
+
93
+ </dt>
94
+ <dd>
95
+ <span class='desc'></span>
96
+ </dd>
97
+
98
+ </dl>
99
+ </div>
100
+
101
+ </div><div class="section source">
102
+ <span>[<a class="source_link" href="#">View source</a>]</span>
103
+ <div class="source_code">
104
+ <table>
105
+ <tr>
106
+ <td>
107
+ <pre class="lines">
108
+
109
+
110
+ 36
111
+ 37
112
+ 38
113
+ 39
114
+ 40</pre>
115
+ </td>
116
+ <td>
117
+ <pre class="code"><span class="info file"># File 'lib/webapp.rb', line 36</span>
118
+
119
+ <span class='id get'>get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span> <span class='kw'>do</span>
120
+ <span class='id logdirs'>logdirs</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='const'>Dir</span><span class='period'>.</span><span class='id entries'>entries</span><span class='lparen'>(</span><span class='id options'>options</span><span class='period'>.</span><span class='id logdir'>logdir</span><span class='rparen'>)</span> <span class='op'>-</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>..</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id sort'>sort</span>
121
+ <span class='id logdirs'>logdirs</span><span class='period'>.</span><span class='id reject!'>reject!</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id file'>file</span><span class='op'>|</span> <span class='id file'>file</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\.zip</span><span class='regexp_end'>/</span></span> <span class='rbrace'>}</span>
122
+ <span class='id list_dirs'>list_dirs</span><span class='lparen'>(</span><span class='id logdirs'>logdirs</span><span class='rparen'>)</span>
123
+ <span class='kw'>end</span></pre>
124
+ </td>
125
+ </tr>
126
+ </table>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+ <div class="section method">
133
+ <div class="details_title">
134
+ <h1>/:dir/report.html</h1>
135
+ <div class="section docstring">
136
+ <p>
137
+ Shows a report. If the report is not generated already, it will be.
138
+ </p>
139
+
140
+ </div><div class="section tags">
141
+ <h2>Meta Tags</h2>
142
+ <div class="url_param">
143
+ <h3>Matched URL Parameters:</h3>
144
+ <dl>
145
+
146
+ <dt>
147
+
148
+
149
+ <span class='name'>dir</span>
150
+
151
+
152
+ </dt>
153
+ <dd>
154
+ <span class='desc'><p>
155
+ The date on which the measurement was taken.
156
+ </p>
157
+ </span>
158
+ </dd>
159
+
160
+ </dl>
161
+ </div>
162
+ <div class="get">
163
+ <h3>GET Parameters:</h3>
164
+ <dl>
165
+
166
+ <dt>
167
+
168
+
169
+ <span class='name'>force</span>
170
+
171
+
172
+ </dt>
173
+ <dd>
174
+ <span class='desc'><p>
175
+ If present and set to any value, regeneration of the report is forced
176
+ </p>
177
+ </span>
178
+ </dd>
179
+
180
+ </dl>
181
+ </div>
182
+ <div class="output_types">
183
+ <h3>Output Types:</h3>
184
+ <dl>
185
+
186
+ <dt>
187
+
188
+ <span class='type'>[<tt>text/html</tt>]</span>
189
+
190
+
191
+ <span class='name'></span>
192
+
193
+
194
+ </dt>
195
+ <dd>
196
+ <span class='desc'></span>
197
+ </dd>
198
+
199
+ </dl>
200
+ </div>
201
+ <div class="output_languages">
202
+ <h3>Output Languages:</h3>
203
+ <dl>
204
+
205
+ <dt>
206
+
207
+ <span class='type'>[<tt>en-US</tt>]</span>
208
+
209
+
210
+ <span class='name'></span>
211
+
212
+
213
+ </dt>
214
+ <dd>
215
+ <span class='desc'></span>
216
+ </dd>
217
+
218
+ </dl>
219
+ </div>
220
+
221
+ </div><div class="section source">
222
+ <span>[<a class="source_link" href="#">View source</a>]</span>
223
+ <div class="source_code">
224
+ <table>
225
+ <tr>
226
+ <td>
227
+ <pre class="lines">
228
+
229
+
230
+ 51
231
+ 52
232
+ 53</pre>
233
+ </td>
234
+ <td>
235
+ <pre class="code"><span class="info file"># File 'lib/webapp.rb', line 51</span>
236
+
237
+ <span class='id get'>get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/:dir/report.html</span><span class='tstring_end'>'</span></span> <span class='kw'>do</span>
238
+ <span class='id run_stats'>run_stats</span><span class='lparen'>(</span><span class='id params'>params</span><span class='lbracket'>[</span><span class='symbol'>:dir</span><span class='rbracket'>]</span><span class='rparen'>)</span>
239
+ <span class='kw'>end</span></pre>
240
+ </td>
241
+ </tr>
242
+ </table>
243
+ </div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+
248
+ <div class="section method">
249
+ <div class="details_title">
250
+ <h1>/:dir.zip</h1>
251
+ <div class="section docstring">
252
+ <p>
253
+ Delivers a report as zip file. If not generated, report generation takes
254
+ place.
255
+ </p>
256
+
257
+ </div><div class="section tags">
258
+ <h2>Meta Tags</h2>
259
+ <div class="url_param">
260
+ <h3>Matched URL Parameters:</h3>
261
+ <dl>
262
+
263
+ <dt>
264
+
265
+
266
+ <span class='name'>[dir]</span>
267
+
268
+
269
+ </dt>
270
+ <dd>
271
+ <span class='desc'><p>
272
+ The date on which the measurement was taken.
273
+ </p>
274
+ </span>
275
+ </dd>
276
+
277
+ </dl>
278
+ </div>
279
+ <div class="output_types">
280
+ <h3>Output Types:</h3>
281
+ <dl>
282
+
283
+ <dt>
284
+
285
+ <span class='type'>[<tt>application/zip</tt>]</span>
286
+
287
+
288
+ <span class='name'></span>
289
+
290
+
291
+ </dt>
292
+ <dd>
293
+ <span class='desc'></span>
294
+ </dd>
295
+
296
+ </dl>
297
+ </div>
298
+
299
+ </div><div class="section source">
300
+ <span>[<a class="source_link" href="#">View source</a>]</span>
301
+ <div class="source_code">
302
+ <table>
303
+ <tr>
304
+ <td>
305
+ <pre class="lines">
306
+
307
+
308
+ 62
309
+ 63
310
+ 64
311
+ 65
312
+ 66
313
+ 67
314
+ 68
315
+ 69
316
+ 70</pre>
317
+ </td>
318
+ <td>
319
+ <pre class="code"><span class="info file"># File 'lib/webapp.rb', line 62</span>
320
+
321
+ <span class='id get'>get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/:dir.zip</span><span class='tstring_end'>'</span></span> <span class='kw'>do</span>
322
+ <span class='id filename'>filename</span> <span class='op'>=</span> <span class='id params'>params</span><span class='lbracket'>[</span><span class='symbol'>:dir</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>:</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
323
+ <span class='kw'>unless</span> <span class='const'>File</span><span class='period'>.</span><span class='id exists?'>exists?</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='id options'>options</span><span class='period'>.</span><span class='id logdir'>logdir</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_content'>.zip</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
324
+ <span class='id zip'>zip</span><span class='lparen'>(</span><span class='id params'>params</span><span class='lbracket'>[</span><span class='symbol'>:dir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id filename'>filename</span><span class='rparen'>)</span>
325
+ <span class='kw'>end</span>
326
+ <span class='id attachment'>attachment</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_content'>.zip</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
327
+ <span class='id content_type'>content_type</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/zip</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
328
+ <span class='const'>File</span><span class='period'>.</span><span class='id read'>read</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='id options'>options</span><span class='period'>.</span><span class='id logdir'>logdir</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_content'>.zip</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
329
+ <span class='kw'>end</span></pre>
330
+ </td>
331
+ </tr>
332
+ </table>
333
+ </div>
334
+ </div>
335
+ </div>
336
+ </div>
337
+
338
+ </div> <div class="section visibilitygroup public">
339
+ <h1>Public Visibility</h1>
340
+ <div class="section methodsummary instance public">
341
+ <h1>Public Instance Method Summary</h1>
342
+ <table class="summary">
343
+
344
+ <tr>
345
+ <th class="signature">
346
+
347
+ <span class='overload'>
348
+ <span class='name'><a href="#list_dirs-instance_method" title="#list_dirs">#list_dirs</a></span><span class='args'>(logdirs)</span>
349
+ <span class='block'></span>
350
+ </span>
351
+
352
+
353
+ </th>
354
+ <td class="docstring">
355
+ <p>
356
+ Generates a HTML document listing of all logs present on the machine.
357
+ </p>
358
+
359
+
360
+ <p class='returns'>
361
+ Returns:
362
+ <span class='return_types'>
363
+ <tt>String&lt;text/html></tt>
364
+ </span>
365
+ </p>
366
+
367
+ </td>
368
+ </tr>
369
+
370
+ <tr>
371
+ <th class="signature">
372
+
373
+ <span class='overload'>
374
+ <span class='name'><a href="#run_stats-instance_method" title="#run_stats">#run_stats</a></span><span class='args'>(dir, force = false)</span>
375
+ <span class='block'></span>
376
+ </span>
377
+
378
+
379
+ </th>
380
+ <td class="docstring">
381
+ <p>
382
+ Runs the report generation.
383
+ </p>
384
+
385
+
386
+ <p class='returns'>
387
+ Returns:
388
+ <span class='return_types'>
389
+ <tt>String</tt>
390
+ </span>
391
+ </p>
392
+
393
+ </td>
394
+ </tr>
395
+
396
+ <tr>
397
+ <th class="signature">
398
+
399
+ <span class='overload'>
400
+ <span class='name'><a href="#zip-instance_method" title="#zip">#zip</a></span><span class='args'>(dir, filename)</span>
401
+ <span class='block'></span>
402
+ </span>
403
+
404
+
405
+ </th>
406
+ <td class="docstring">
407
+ <p>
408
+ Creates a zip file out of a directory.
409
+ </p>
410
+
411
+
412
+ <p class='returns'>
413
+ Returns:
414
+ <span class='return_types'>
415
+ <tt>undefined</tt>
416
+ </span>
417
+ </p>
418
+
419
+ </td>
420
+ </tr>
421
+
422
+ </table>
423
+
424
+ </div>
425
+ <div class="section methoddetails instance public">
426
+ <h1>Public Instance Method Details</h1>
427
+
428
+ <div class="method">
429
+ <div class="method_header">
430
+ <h3>list_dirs</h3>
431
+ </div><div id="list_dirs-instance_method" class="section method">
432
+ <div class="details_title">
433
+ <div class='section methodsignature'>
434
+ <tt class='def'>
435
+ <span class='visibility'>public</span>
436
+ <span class='return_types'><tt>String&lt;text/html></tt></span>
437
+ <span class='name'>list_dirs</span><span class='args'>(logdirs)</span>
438
+ <span class='block'></span>
439
+ </tt>
440
+ </div>
441
+
442
+ </div><div class="section docstring">
443
+ <p>
444
+ Generates a HTML document listing of all logs present on the machine.
445
+ </p>
446
+
447
+ </div><div class="section tags">
448
+ <h2>Meta Tags</h2>
449
+ <div class="param">
450
+ <h3>Parameters:</h3>
451
+ <dl>
452
+
453
+
454
+ <dt>
455
+ <span class='type'>[<tt>Array&lt;String></tt>]</span>
456
+ <span class='name'>logdirs</span>
457
+
458
+ </dt>
459
+ <dd>
460
+ <span class='desc'><p>
461
+ The directories that contain logs.
462
+ </p>
463
+ </span>
464
+ </dd>
465
+
466
+
467
+ </dl>
468
+ </div><div class="return">
469
+ <h3>Returns:</h3>
470
+ <dl>
471
+
472
+ <dt>
473
+
474
+ <span class='type'>[<tt>String&lt;text/html></tt>]</span>
475
+
476
+
477
+ <span class='name'></span>
478
+
479
+
480
+ </dt>
481
+ <dd>
482
+ <span class='desc'><p>
483
+ The generated document.
484
+ </p>
485
+ </span>
486
+ </dd>
487
+
488
+ </dl>
489
+ </div>
490
+
491
+ </div><div class="section source">
492
+ <span>[<a class="source_link" href="#">View source</a>]</span>
493
+ <div class="source_code">
494
+ <table>
495
+ <tr>
496
+ <td>
497
+ <pre class="lines">
498
+
499
+
500
+ 113
501
+ 114
502
+ 115
503
+ 116
504
+ 117
505
+ 118
506
+ 119
507
+ 120
508
+ 121
509
+ 122
510
+ 123
511
+ 124
512
+ 125
513
+ 126
514
+ 127
515
+ 128
516
+ 129
517
+ 130
518
+ 131</pre>
519
+ </td>
520
+ <td>
521
+ <pre class="code"><span class="info file"># File 'lib/webapp.rb', line 113</span>
522
+
523
+ <span class='kw'>def</span> <span class='id list_dirs'>list_dirs</span><span class='lparen'>(</span><span class='id logdirs'>logdirs</span><span class='rparen'>)</span>
524
+ <span class='id doc'>doc</span> <span class='op'>=</span> <span class='const'>Markaby</span><span class='op'>::</span><span class='const'>Builder</span><span class='period'>.</span><span class='id new'>new</span>
525
+ <span class='id doc'>doc</span><span class='period'>.</span><span class='id html'>html</span> <span class='kw'>do</span>
526
+ <span class='id head'>head</span> <span class='kw'>do</span>
527
+ <span class='id title'>title</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Logpickin'</span><span class='tstring_end'>&quot;</span></span>
528
+ <span class='kw'>end</span>
529
+ <span class='id body'>body</span> <span class='kw'>do</span>
530
+ <span class='id h1'>h1</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Pick a log:</span><span class='tstring_end'>&quot;</span></span>
531
+ <span class='id ul'>ul</span><span class='period'>.</span><span class='id logs'>logs</span> <span class='kw'>do</span>
532
+ <span class='id logdirs'>logdirs</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id dir'>dir</span><span class='op'>|</span>
533
+ <span class='id li'>li</span><span class='period'>.</span><span class='id log'>log</span> <span class='kw'>do</span>
534
+ <span class='id a'>a</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Log </span><span class='embexpr_beg'>#{</span><span class='id dir'>dir</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:href</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id dir'>dir</span><span class='rbrace'>}</span><span class='tstring_content'>/report.html</span><span class='tstring_end'>&quot;</span></span>
535
+ <span class='id a'>a</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>As zip</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:href</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id dir'>dir</span><span class='rbrace'>}</span><span class='tstring_content'>.zip</span><span class='tstring_end'>&quot;</span></span>
536
+ <span class='kw'>end</span>
537
+ <span class='kw'>end</span>
538
+ <span class='kw'>end</span>
539
+ <span class='kw'>end</span>
540
+ <span class='kw'>end</span>
541
+ <span class='kw'>end</span></pre>
542
+ </td>
543
+ </tr>
544
+ </table>
545
+ </div>
546
+ </div>
547
+ </div>
548
+ </div>
549
+
550
+ <div class="method">
551
+ <div class="method_header">
552
+ <h3>run_stats</h3>
553
+ </div><div id="run_stats-instance_method" class="section method">
554
+ <div class="details_title">
555
+ <div class='section methodsignature'>
556
+ <tt class='def'>
557
+ <span class='visibility'>public</span>
558
+ <span class='return_types'><tt>String</tt></span>
559
+ <span class='name'>run_stats</span><span class='args'>(dir, force = false)</span>
560
+ <span class='block'></span>
561
+ </tt>
562
+ </div>
563
+
564
+ </div><div class="section docstring">
565
+ <p>
566
+ Runs the report generation. If a report already exists, it wont be
567
+ generated a second time, unless forced explicitly.
568
+ </p>
569
+
570
+ </div><div class="section tags">
571
+ <h2>Meta Tags</h2>
572
+ <div class="param">
573
+ <h3>Parameters:</h3>
574
+ <dl>
575
+
576
+
577
+ <dt>
578
+ <span class='type'>[<tt>String</tt>]</span>
579
+ <span class='name'>dir</span>
580
+
581
+ </dt>
582
+ <dd>
583
+ <span class='desc'><p>
584
+ The logfile directory of the report.
585
+ </p>
586
+ </span>
587
+ </dd>
588
+
589
+
590
+
591
+ <dt>
592
+ <span class='type'>[<tt>true</tt>, <tt>false</tt>]</span>
593
+ <span class='name'>force</span>
594
+
595
+ </dt>
596
+ <dd>
597
+ <span class='desc'><p>
598
+ If set to true, the report gets created unconditionally.
599
+ </p>
600
+ </span>
601
+ </dd>
602
+
603
+
604
+ </dl>
605
+ </div><div class="return">
606
+ <h3>Returns:</h3>
607
+ <dl>
608
+
609
+ <dt>
610
+
611
+ <span class='type'>[<tt>String</tt>]</span>
612
+
613
+
614
+ <span class='name'></span>
615
+
616
+
617
+ </dt>
618
+ <dd>
619
+ <span class='desc'><p>
620
+ The contents of #{dir}/report.html
621
+ </p>
622
+ </span>
623
+ </dd>
624
+
625
+ </dl>
626
+ </div>
627
+
628
+ </div><div class="section source">
629
+ <span>[<a class="source_link" href="#">View source</a>]</span>
630
+ <div class="source_code">
631
+ <table>
632
+ <tr>
633
+ <td>
634
+ <pre class="lines">
635
+
636
+
637
+ 81
638
+ 82
639
+ 83
640
+ 84
641
+ 85
642
+ 86
643
+ 87
644
+ 88</pre>
645
+ </td>
646
+ <td>
647
+ <pre class="code"><span class="info file"># File 'lib/webapp.rb', line 81</span>
648
+
649
+ <span class='kw'>def</span> <span class='id run_stats'>run_stats</span><span class='lparen'>(</span><span class='id dir'>dir</span><span class='comma'>,</span> <span class='id force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
650
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id chdir'>chdir</span><span class='lparen'>(</span> <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='id options'>options</span><span class='period'>.</span><span class='id logdir'>logdir</span><span class='comma'>,</span> <span class='id dir'>dir</span><span class='rparen'>)</span> <span class='rparen'>)</span> <span class='kw'>do</span>
651
+ <span class='kw'>unless</span> <span class='const'>File</span><span class='period'>.</span><span class='id exists?'>exists?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>report.html</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id force'>force</span> <span class='op'>==</span> <span class='kw'>false</span>
652
+ <span class='id system'>system</span><span class='lparen'>(</span><span class='id options'>options</span><span class='period'>.</span><span class='id tsung_stats'>tsung_stats</span><span class='rparen'>)</span>
653
+ <span class='kw'>end</span>
654
+ <span class='const'>File</span><span class='period'>.</span><span class='id read'>read</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>report.html</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
655
+ <span class='kw'>end</span>
656
+ <span class='kw'>end</span></pre>
657
+ </td>
658
+ </tr>
659
+ </table>
660
+ </div>
661
+ </div>
662
+ </div>
663
+ </div>
664
+
665
+ <div class="method">
666
+ <div class="method_header">
667
+ <h3>zip</h3>
668
+ </div><div id="zip-instance_method" class="section method">
669
+ <div class="details_title">
670
+ <div class='section methodsignature'>
671
+ <tt class='def'>
672
+ <span class='visibility'>public</span>
673
+ <span class='return_types'><tt>undefined</tt></span>
674
+ <span class='name'>zip</span><span class='args'>(dir, filename)</span>
675
+ <span class='block'></span>
676
+ </tt>
677
+ </div>
678
+
679
+ </div><div class="section docstring">
680
+ <p>
681
+ Creates a zip file out of a directory.
682
+ </p>
683
+
684
+ </div><div class="section tags">
685
+ <h2>Meta Tags</h2>
686
+ <div class="param">
687
+ <h3>Parameters:</h3>
688
+ <dl>
689
+
690
+
691
+ <dt>
692
+ <span class='type'>[<tt>String</tt>]</span>
693
+ <span class='name'>dir</span>
694
+
695
+ </dt>
696
+ <dd>
697
+ <span class='desc'><p>
698
+ The directories name.
699
+ </p>
700
+ </span>
701
+ </dd>
702
+
703
+
704
+
705
+ <dt>
706
+ <span class='type'>[<tt>String</tt>]</span>
707
+ <span class='name'>filename</span>
708
+
709
+ </dt>
710
+ <dd>
711
+ <span class='desc'><p>
712
+ The output filename.
713
+ </p>
714
+ </span>
715
+ </dd>
716
+
717
+
718
+ </dl>
719
+ </div><div class="return">
720
+ <h3>Returns:</h3>
721
+ <dl>
722
+
723
+ <dt>
724
+
725
+ <span class='type'>[<tt>undefined</tt>]</span>
726
+
727
+
728
+ <span class='name'></span>
729
+
730
+
731
+ </dt>
732
+ <dd>
733
+ <span class='desc'><p>
734
+ unspecified
735
+ </p>
736
+ </span>
737
+ </dd>
738
+
739
+ </dl>
740
+ </div>
741
+
742
+ </div><div class="section source">
743
+ <span>[<a class="source_link" href="#">View source</a>]</span>
744
+ <div class="source_code">
745
+ <table>
746
+ <tr>
747
+ <td>
748
+ <pre class="lines">
749
+
750
+
751
+ 97
752
+ 98
753
+ 99
754
+ 100
755
+ 101
756
+ 102
757
+ 103
758
+ 104
759
+ 105</pre>
760
+ </td>
761
+ <td>
762
+ <pre class="code"><span class="info file"># File 'lib/webapp.rb', line 97</span>
763
+
764
+ <span class='kw'>def</span> <span class='id zip'>zip</span><span class='lparen'>(</span><span class='id dir'>dir</span><span class='comma'>,</span> <span class='id filename'>filename</span><span class='rparen'>)</span>
765
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id chdir'>chdir</span><span class='lparen'>(</span> <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='id options'>options</span><span class='period'>.</span><span class='id logdir'>logdir</span><span class='rparen'>)</span> <span class='rparen'>)</span> <span class='kw'>do</span>
766
+ <span class='kw'>unless</span> <span class='const'>File</span><span class='period'>.</span><span class='id exists?'>exists?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id dir'>dir</span><span class='rbrace'>}</span><span class='tstring_content'>.zip</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
767
+ <span class='const'>Zip</span><span class='op'>::</span><span class='const'>ZipFile</span><span class='period'>.</span><span class='id open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_content'>.zip</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id zf'>zf</span><span class='op'>|</span>
768
+ <span class='const'>Dir</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id dir'>dir</span><span class='rbrace'>}</span><span class='tstring_content'>/**/*</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id f'>f</span><span class='op'>|</span> <span class='id zf'>zf</span><span class='period'>.</span><span class='id add'>add</span><span class='lparen'>(</span><span class='id f'>f</span><span class='comma'>,</span> <span class='id f'>f</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
769
+ <span class='kw'>end</span>
770
+ <span class='kw'>end</span>
771
+ <span class='kw'>end</span>
772
+ <span class='kw'>end</span></pre>
773
+ </td>
774
+ </tr>
775
+ </table>
776
+ </div>
777
+ </div>
778
+ </div>
779
+ </div>
780
+
781
+ </div>
782
+ </div>
783
+
784
+ </div>
785
+ </div>
786
+ <div id="yard_info">
787
+ Generated on Tuesday, July 21 2009 at 11:24:31 PM by
788
+ <abbr class="yard" title="Yay! A Ruby Documentation Tool"><a href="http://yard.soen.ca">YARD</a></abbr>
789
+ 0.2.3.2 (ruby-1.9.1).
790
+ </div>
791
+
792
+ </body>
793
+ </html>