stella 0.3.2 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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,914 @@
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::CLI</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::CLI</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/stella/cli_rb.html">
59
+ lib/stella/cli.rb
60
+ </a>
61
+ <br />
62
+ <a href="../../files/lib/stella/cli/base_rb.html">
63
+ lib/stella/cli/base.rb
64
+ </a>
65
+ <br />
66
+ <a href="../../files/lib/stella/cli/language_rb.html">
67
+ lib/stella/cli/language.rb
68
+ </a>
69
+ <br />
70
+ <a href="../../files/lib/stella/cli/localtest_rb.html">
71
+ lib/stella/cli/localtest.rb
72
+ </a>
73
+ <br />
74
+ <a href="../../files/lib/stella/cli_rb.html">
75
+ lib/stella/cli.rb
76
+ </a>
77
+ <br />
78
+ </td>
79
+ </tr>
80
+
81
+ <tr class="top-aligned-row">
82
+ <td><strong>Parent:</strong></td>
83
+ <td>
84
+ Object
85
+ </td>
86
+ </tr>
87
+ </table>
88
+ </div>
89
+ <!-- banner header -->
90
+
91
+ <div id="bodyContent">
92
+
93
+
94
+
95
+ <div id="contextContent">
96
+
97
+
98
+
99
+ </div>
100
+
101
+ <div id="method-list">
102
+ <h3 class="section-bar">Methods</h3>
103
+
104
+ <div class="name-list">
105
+ <a href="#M000140">dump_inputs</a>&nbsp;&nbsp;
106
+ <a href="#M000133">dump_inputs</a>&nbsp;&nbsp;
107
+ <a href="#M000134">new</a>&nbsp;&nbsp;
108
+ <a href="#M000127">new</a>&nbsp;&nbsp;
109
+ <a href="#M000139">output_version</a>&nbsp;&nbsp;
110
+ <a href="#M000132">output_version</a>&nbsp;&nbsp;
111
+ <a href="#M000129">process_arguments</a>&nbsp;&nbsp;
112
+ <a href="#M000136">process_arguments</a>&nbsp;&nbsp;
113
+ <a href="#M000137">process_options</a>&nbsp;&nbsp;
114
+ <a href="#M000130">process_options</a>&nbsp;&nbsp;
115
+ <a href="#M000131">process_standard_input</a>&nbsp;&nbsp;
116
+ <a href="#M000138">process_standard_input</a>&nbsp;&nbsp;
117
+ <a href="#M000128">run</a>&nbsp;&nbsp;
118
+ <a href="#M000135">run</a>&nbsp;&nbsp;
119
+ </div>
120
+ </div>
121
+
122
+ </div>
123
+
124
+
125
+ <!-- if includes -->
126
+
127
+ <div id="section">
128
+
129
+ <div id="class-list">
130
+ <h3 class="section-bar">Classes and Modules</h3>
131
+
132
+ Class <a href="CLI/Base.html" class="link">Stella::CLI::Base</a><br />
133
+ Class <a href="CLI/Language.html" class="link">Stella::CLI::Language</a><br />
134
+ Class <a href="CLI/LocalTest.html" class="link">Stella::CLI::LocalTest</a><br />
135
+
136
+ </div>
137
+
138
+
139
+
140
+
141
+ <div id="attribute-list">
142
+ <h3 class="section-bar">Attributes</h3>
143
+
144
+ <div class="name-list">
145
+ <table>
146
+ <tr class="top-aligned-row context-row">
147
+ <td class="context-item-name">commands</td>
148
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
149
+ <td class="context-item-desc"></td>
150
+ </tr>
151
+ <tr class="top-aligned-row context-row">
152
+ <td class="context-item-name">commands</td>
153
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
154
+ <td class="context-item-desc"></td>
155
+ </tr>
156
+ <tr class="top-aligned-row context-row">
157
+ <td class="context-item-name">logger</td>
158
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
159
+ <td class="context-item-desc"></td>
160
+ </tr>
161
+ <tr class="top-aligned-row context-row">
162
+ <td class="context-item-name">logger</td>
163
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
164
+ <td class="context-item-desc"></td>
165
+ </tr>
166
+ <tr class="top-aligned-row context-row">
167
+ <td class="context-item-name">options</td>
168
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
169
+ <td class="context-item-desc"></td>
170
+ </tr>
171
+ <tr class="top-aligned-row context-row">
172
+ <td class="context-item-name">options</td>
173
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
174
+ <td class="context-item-desc"></td>
175
+ </tr>
176
+ </table>
177
+ </div>
178
+ </div>
179
+
180
+
181
+
182
+ <!-- if method_list -->
183
+ <div id="methods">
184
+ <h3 class="section-bar">Public Class methods</h3>
185
+
186
+ <div id="method-M000134" class="method-detail">
187
+ <a name="M000134"></a>
188
+
189
+ <div class="method-heading">
190
+ <a href="#M000134" class="method-signature">
191
+ <span class="method-name">new</span><span class="method-args">(arguments=[], stdin=nil)</span>
192
+ </a>
193
+ </div>
194
+
195
+ <div class="method-description">
196
+ <p><a class="source-toggle" href="#"
197
+ onclick="toggleCode('M000134-source');return false;">[Source]</a></p>
198
+ <div class="method-source-code" id="M000134-source">
199
+ <pre>
200
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 52</span>
201
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arguments</span>=[], <span class="ruby-identifier">stdin</span>=<span class="ruby-keyword kw">nil</span>)
202
+ 53: <span class="ruby-ivar">@arguments</span> = <span class="ruby-identifier">arguments</span>
203
+ 54: <span class="ruby-ivar">@stdin</span> = <span class="ruby-identifier">stdin</span>
204
+ 55:
205
+ 56: <span class="ruby-ivar">@commands</span> = {
206
+ 57: <span class="ruby-value str">'ab'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">LocalTest</span>,
207
+ 58: <span class="ruby-value str">'siege'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">LocalTest</span>,
208
+ 59: <span class="ruby-value str">'httperf'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">LocalTest</span>,
209
+ 60: <span class="ruby-value str">'lang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">Language</span>
210
+ 61: }
211
+ 62: <span class="ruby-ivar">@config</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>
212
+ 63: <span class="ruby-ivar">@options</span> = <span class="ruby-constant">OpenStruct</span>.<span class="ruby-identifier">new</span>
213
+ 64: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> = <span class="ruby-value">0</span>
214
+ 65: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">agents</span> = []
215
+ 66: <span class="ruby-keyword kw">end</span>
216
+ </pre>
217
+ </div>
218
+ </div>
219
+ </div>
220
+
221
+ <div id="method-M000127" class="method-detail">
222
+ <a name="M000127"></a>
223
+
224
+ <div class="method-heading">
225
+ <a href="#M000127" class="method-signature">
226
+ <span class="method-name">new</span><span class="method-args">(arguments=[], stdin=nil)</span>
227
+ </a>
228
+ </div>
229
+
230
+ <div class="method-description">
231
+ <p><a class="source-toggle" href="#"
232
+ onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
233
+ <div class="method-source-code" id="M000127-source">
234
+ <pre>
235
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 52</span>
236
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arguments</span>=[], <span class="ruby-identifier">stdin</span>=<span class="ruby-keyword kw">nil</span>)
237
+ 53: <span class="ruby-ivar">@arguments</span> = <span class="ruby-identifier">arguments</span>
238
+ 54: <span class="ruby-ivar">@stdin</span> = <span class="ruby-identifier">stdin</span>
239
+ 55:
240
+ 56: <span class="ruby-ivar">@commands</span> = {
241
+ 57: <span class="ruby-value str">'ab'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">LocalTest</span>,
242
+ 58: <span class="ruby-value str">'siege'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">LocalTest</span>,
243
+ 59: <span class="ruby-value str">'httperf'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">LocalTest</span>,
244
+ 60: <span class="ruby-value str">'lang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">Language</span>
245
+ 61: }
246
+ 62: <span class="ruby-ivar">@config</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>
247
+ 63: <span class="ruby-ivar">@options</span> = <span class="ruby-constant">OpenStruct</span>.<span class="ruby-identifier">new</span>
248
+ 64: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> = <span class="ruby-value">0</span>
249
+ 65: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">agents</span> = []
250
+ 66: <span class="ruby-keyword kw">end</span>
251
+ </pre>
252
+ </div>
253
+ </div>
254
+ </div>
255
+
256
+ <h3 class="section-bar">Public Instance methods</h3>
257
+
258
+ <div id="method-M000128" class="method-detail">
259
+ <a name="M000128"></a>
260
+
261
+ <div class="method-heading">
262
+ <a href="#M000128" class="method-signature">
263
+ <span class="method-name">run</span><span class="method-args">()</span>
264
+ </a>
265
+ </div>
266
+
267
+ <div class="method-description">
268
+ <p><a class="source-toggle" href="#"
269
+ onclick="toggleCode('M000128-source');return false;">[Source]</a></p>
270
+ <div class="method-source-code" id="M000128-source">
271
+ <pre>
272
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 68</span>
273
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>
274
+ 69: <span class="ruby-identifier">process_arguments</span>
275
+ 70: <span class="ruby-identifier">process_options</span>
276
+ 71:
277
+ 72: <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@command_name</span>)
278
+ 73: <span class="ruby-identifier">process_options</span>(<span class="ruby-identifier">:display</span>)
279
+ 74: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
280
+ 75: <span class="ruby-keyword kw">end</span>
281
+ 76:
282
+ 77: <span class="ruby-comment cmt"># Pull the requested command object out of the list</span>
283
+ 78: <span class="ruby-comment cmt"># and tell it what shortname that was used to call it.</span>
284
+ 79: <span class="ruby-identifier">command</span> = <span class="ruby-ivar">@commands</span>[<span class="ruby-ivar">@command_name</span>].<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@command_name</span>)
285
+ 80:
286
+ 81: <span class="ruby-comment cmt"># Give the command object access to the config and runtime options</span>
287
+ 82: <span class="ruby-comment cmt">#command.global_config = @config </span>
288
+ 83: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">stella_options</span> = <span class="ruby-ivar">@options</span>
289
+ 84: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">arguments</span> = <span class="ruby-ivar">@command_arguments</span>
290
+ 85: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">working_directory</span> = <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">working_directory</span>
291
+ 86:
292
+ 87: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">run</span>
293
+ 88:
294
+ 89:
295
+ 90: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
296
+ 91: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">ex</span>)
297
+ 92: <span class="ruby-keyword kw">end</span>
298
+ </pre>
299
+ </div>
300
+ </div>
301
+ </div>
302
+
303
+ <div id="method-M000135" class="method-detail">
304
+ <a name="M000135"></a>
305
+
306
+ <div class="method-heading">
307
+ <a href="#M000135" class="method-signature">
308
+ <span class="method-name">run</span><span class="method-args">()</span>
309
+ </a>
310
+ </div>
311
+
312
+ <div class="method-description">
313
+ <p><a class="source-toggle" href="#"
314
+ onclick="toggleCode('M000135-source');return false;">[Source]</a></p>
315
+ <div class="method-source-code" id="M000135-source">
316
+ <pre>
317
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 68</span>
318
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>
319
+ 69: <span class="ruby-identifier">process_arguments</span>
320
+ 70: <span class="ruby-identifier">process_options</span>
321
+ 71:
322
+ 72: <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@command_name</span>)
323
+ 73: <span class="ruby-identifier">process_options</span>(<span class="ruby-identifier">:display</span>)
324
+ 74: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
325
+ 75: <span class="ruby-keyword kw">end</span>
326
+ 76:
327
+ 77: <span class="ruby-comment cmt"># Pull the requested command object out of the list</span>
328
+ 78: <span class="ruby-comment cmt"># and tell it what shortname that was used to call it.</span>
329
+ 79: <span class="ruby-identifier">command</span> = <span class="ruby-ivar">@commands</span>[<span class="ruby-ivar">@command_name</span>].<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@command_name</span>)
330
+ 80:
331
+ 81: <span class="ruby-comment cmt"># Give the command object access to the config and runtime options</span>
332
+ 82: <span class="ruby-comment cmt">#command.global_config = @config </span>
333
+ 83: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">stella_options</span> = <span class="ruby-ivar">@options</span>
334
+ 84: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">arguments</span> = <span class="ruby-ivar">@command_arguments</span>
335
+ 85: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">working_directory</span> = <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">working_directory</span>
336
+ 86:
337
+ 87: <span class="ruby-identifier">command</span>.<span class="ruby-identifier">run</span>
338
+ 88:
339
+ 89:
340
+ 90: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
341
+ 91: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">ex</span>)
342
+ 92: <span class="ruby-keyword kw">end</span>
343
+ </pre>
344
+ </div>
345
+ </div>
346
+ </div>
347
+
348
+ <h3 class="section-bar">Protected Instance methods</h3>
349
+
350
+ <div id="method-M000140" class="method-detail">
351
+ <a name="M000140"></a>
352
+
353
+ <div class="method-heading">
354
+ <a href="#M000140" class="method-signature">
355
+ <span class="method-name">dump_inputs</span><span class="method-args">()</span>
356
+ </a>
357
+ </div>
358
+
359
+ <div class="method-description">
360
+ <p><a class="source-toggle" href="#"
361
+ onclick="toggleCode('M000140-source');return false;">[Source]</a></p>
362
+ <div class="method-source-code" id="M000140-source">
363
+ <pre>
364
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 245</span>
365
+ 245: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump_inputs</span>
366
+ 246:
367
+ 247: <span class="ruby-comment cmt">#ENV.each_pair do |n,v|</span>
368
+ 248: <span class="ruby-comment cmt"># Stella::LOGGER.debug(&quot;ENV[#{n}]=#{v}&quot;)</span>
369
+ 249: <span class="ruby-comment cmt">#end</span>
370
+ 250:
371
+ 251: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Commands (#{@command_name}): #{@commands.keys.join(',')}&quot;</span>)
372
+ 252:
373
+ 253: <span class="ruby-comment cmt">#Stella::LOGGER.debug(&quot;Configs: &quot;)</span>
374
+ 254: <span class="ruby-comment cmt">#@config.to_hash.each_pair do |n,v|</span>
375
+ 255: <span class="ruby-comment cmt"># Stella::LOGGER.debug(&quot; #{n}=#{v}&quot;)</span>
376
+ 256: <span class="ruby-comment cmt">#end</span>
377
+ 257:
378
+ 258: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Options: &quot;</span>)
379
+ 259: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">marshal_dump</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">n</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
380
+ 260: <span class="ruby-identifier">v</span> = [<span class="ruby-identifier">v</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
381
+ 261: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot; #{n} = #{v.join(',')}&quot;</span>)
382
+ 262: <span class="ruby-keyword kw">end</span>
383
+ 263:
384
+ 264: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Stella Arguments: #{@stella_arguments.join(',')}&quot;</span>)
385
+ 265: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Command Arguments: #{@command_arguments.join(',')}&quot;</span> )
386
+ 266: <span class="ruby-keyword kw">end</span>
387
+ </pre>
388
+ </div>
389
+ </div>
390
+ </div>
391
+
392
+ <div id="method-M000133" class="method-detail">
393
+ <a name="M000133"></a>
394
+
395
+ <div class="method-heading">
396
+ <a href="#M000133" class="method-signature">
397
+ <span class="method-name">dump_inputs</span><span class="method-args">()</span>
398
+ </a>
399
+ </div>
400
+
401
+ <div class="method-description">
402
+ <p><a class="source-toggle" href="#"
403
+ onclick="toggleCode('M000133-source');return false;">[Source]</a></p>
404
+ <div class="method-source-code" id="M000133-source">
405
+ <pre>
406
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 245</span>
407
+ 245: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump_inputs</span>
408
+ 246:
409
+ 247: <span class="ruby-comment cmt">#ENV.each_pair do |n,v|</span>
410
+ 248: <span class="ruby-comment cmt"># Stella::LOGGER.debug(&quot;ENV[#{n}]=#{v}&quot;)</span>
411
+ 249: <span class="ruby-comment cmt">#end</span>
412
+ 250:
413
+ 251: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Commands (#{@command_name}): #{@commands.keys.join(',')}&quot;</span>)
414
+ 252:
415
+ 253: <span class="ruby-comment cmt">#Stella::LOGGER.debug(&quot;Configs: &quot;)</span>
416
+ 254: <span class="ruby-comment cmt">#@config.to_hash.each_pair do |n,v|</span>
417
+ 255: <span class="ruby-comment cmt"># Stella::LOGGER.debug(&quot; #{n}=#{v}&quot;)</span>
418
+ 256: <span class="ruby-comment cmt">#end</span>
419
+ 257:
420
+ 258: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Options: &quot;</span>)
421
+ 259: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">marshal_dump</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">n</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
422
+ 260: <span class="ruby-identifier">v</span> = [<span class="ruby-identifier">v</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
423
+ 261: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot; #{n} = #{v.join(',')}&quot;</span>)
424
+ 262: <span class="ruby-keyword kw">end</span>
425
+ 263:
426
+ 264: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Stella Arguments: #{@stella_arguments.join(',')}&quot;</span>)
427
+ 265: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Command Arguments: #{@command_arguments.join(',')}&quot;</span> )
428
+ 266: <span class="ruby-keyword kw">end</span>
429
+ </pre>
430
+ </div>
431
+ </div>
432
+ </div>
433
+
434
+ <div id="method-M000139" class="method-detail">
435
+ <a name="M000139"></a>
436
+
437
+ <div class="method-heading">
438
+ <a href="#M000139" class="method-signature">
439
+ <span class="method-name">output_version</span><span class="method-args">()</span>
440
+ </a>
441
+ </div>
442
+
443
+ <div class="method-description">
444
+ <p><a class="source-toggle" href="#"
445
+ onclick="toggleCode('M000139-source');return false;">[Source]</a></p>
446
+ <div class="method-source-code" id="M000139-source">
447
+ <pre>
448
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 241</span>
449
+ 241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">output_version</span>
450
+ 242: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">info</span>(<span class="ruby-identifier">:cli_print_version</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>.<span class="ruby-identifier">to_s</span>)
451
+ 243: <span class="ruby-keyword kw">end</span>
452
+ </pre>
453
+ </div>
454
+ </div>
455
+ </div>
456
+
457
+ <div id="method-M000132" class="method-detail">
458
+ <a name="M000132"></a>
459
+
460
+ <div class="method-heading">
461
+ <a href="#M000132" class="method-signature">
462
+ <span class="method-name">output_version</span><span class="method-args">()</span>
463
+ </a>
464
+ </div>
465
+
466
+ <div class="method-description">
467
+ <p><a class="source-toggle" href="#"
468
+ onclick="toggleCode('M000132-source');return false;">[Source]</a></p>
469
+ <div class="method-source-code" id="M000132-source">
470
+ <pre>
471
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 241</span>
472
+ 241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">output_version</span>
473
+ 242: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">info</span>(<span class="ruby-identifier">:cli_print_version</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>.<span class="ruby-identifier">to_s</span>)
474
+ 243: <span class="ruby-keyword kw">end</span>
475
+ </pre>
476
+ </div>
477
+ </div>
478
+ </div>
479
+
480
+ <div id="method-M000129" class="method-detail">
481
+ <a name="M000129"></a>
482
+
483
+ <div class="method-heading">
484
+ <a href="#M000129" class="method-signature">
485
+ <span class="method-name">process_arguments</span><span class="method-args">()</span>
486
+ </a>
487
+ </div>
488
+
489
+ <div class="method-description">
490
+ <p>
491
+ <a href="CLI.html#M000129">process_arguments</a>
492
+ </p>
493
+ <p>
494
+ Split the arguments into stella args and command args i.e. stella -H push
495
+ -f (-H is a stella arg, -f is a command arg) True if required arguments
496
+ were provided
497
+ </p>
498
+ <p><a class="source-toggle" href="#"
499
+ onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
500
+ <div class="method-source-code" id="M000129-source">
501
+ <pre>
502
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 103</span>
503
+ 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_arguments</span>
504
+ 104:
505
+ 105: <span class="ruby-ivar">@command_name</span> = <span class="ruby-keyword kw">nil</span>
506
+ 106: <span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
507
+ 107: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">arg</span>)
508
+ 108: <span class="ruby-ivar">@command_name</span> = <span class="ruby-identifier">arg</span>
509
+ 109: <span class="ruby-identifier">index</span> = <span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@command_name</span>)
510
+ 110: <span class="ruby-ivar">@command_arguments</span> = <span class="ruby-ivar">@arguments</span>[<span class="ruby-identifier">index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">size</span>]
511
+ 111: <span class="ruby-ivar">@stella_arguments</span> = <span class="ruby-ivar">@arguments</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">index</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
512
+ 112: <span class="ruby-keyword kw">break</span>
513
+ 113: <span class="ruby-keyword kw">end</span>
514
+ 114: <span class="ruby-keyword kw">end</span>
515
+ 115:
516
+ 116: <span class="ruby-ivar">@command_arguments</span> = [] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@command_arguments</span>.<span class="ruby-identifier">nil?</span>
517
+ 117: <span class="ruby-ivar">@stella_arguments</span> = [] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stella_arguments</span>.<span class="ruby-identifier">nil?</span>
518
+ 118:
519
+ 119: <span class="ruby-comment cmt"># If there's no command we'll assume all the options are for Stella</span>
520
+ 120: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@command_name</span>
521
+ 121: <span class="ruby-ivar">@stella_arguments</span> = <span class="ruby-ivar">@arguments</span>
522
+ 122: <span class="ruby-ivar">@arguments</span> = []
523
+ 123: <span class="ruby-keyword kw">end</span>
524
+ 124:
525
+ 125: <span class="ruby-keyword kw">end</span>
526
+ </pre>
527
+ </div>
528
+ </div>
529
+ </div>
530
+
531
+ <div id="method-M000136" class="method-detail">
532
+ <a name="M000136"></a>
533
+
534
+ <div class="method-heading">
535
+ <a href="#M000136" class="method-signature">
536
+ <span class="method-name">process_arguments</span><span class="method-args">()</span>
537
+ </a>
538
+ </div>
539
+
540
+ <div class="method-description">
541
+ <p>
542
+ <a href="CLI.html#M000129">process_arguments</a>
543
+ </p>
544
+ <p>
545
+ Split the arguments into stella args and command args i.e. stella -H push
546
+ -f (-H is a stella arg, -f is a command arg) True if required arguments
547
+ were provided
548
+ </p>
549
+ <p><a class="source-toggle" href="#"
550
+ onclick="toggleCode('M000136-source');return false;">[Source]</a></p>
551
+ <div class="method-source-code" id="M000136-source">
552
+ <pre>
553
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 103</span>
554
+ 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_arguments</span>
555
+ 104:
556
+ 105: <span class="ruby-ivar">@command_name</span> = <span class="ruby-keyword kw">nil</span>
557
+ 106: <span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
558
+ 107: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">arg</span>)
559
+ 108: <span class="ruby-ivar">@command_name</span> = <span class="ruby-identifier">arg</span>
560
+ 109: <span class="ruby-identifier">index</span> = <span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@command_name</span>)
561
+ 110: <span class="ruby-ivar">@command_arguments</span> = <span class="ruby-ivar">@arguments</span>[<span class="ruby-identifier">index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">size</span>]
562
+ 111: <span class="ruby-ivar">@stella_arguments</span> = <span class="ruby-ivar">@arguments</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">index</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
563
+ 112: <span class="ruby-keyword kw">break</span>
564
+ 113: <span class="ruby-keyword kw">end</span>
565
+ 114: <span class="ruby-keyword kw">end</span>
566
+ 115:
567
+ 116: <span class="ruby-ivar">@command_arguments</span> = [] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@command_arguments</span>.<span class="ruby-identifier">nil?</span>
568
+ 117: <span class="ruby-ivar">@stella_arguments</span> = [] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stella_arguments</span>.<span class="ruby-identifier">nil?</span>
569
+ 118:
570
+ 119: <span class="ruby-comment cmt"># If there's no command we'll assume all the options are for Stella</span>
571
+ 120: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@command_name</span>
572
+ 121: <span class="ruby-ivar">@stella_arguments</span> = <span class="ruby-ivar">@arguments</span>
573
+ 122: <span class="ruby-ivar">@arguments</span> = []
574
+ 123: <span class="ruby-keyword kw">end</span>
575
+ 124:
576
+ 125: <span class="ruby-keyword kw">end</span>
577
+ </pre>
578
+ </div>
579
+ </div>
580
+ </div>
581
+
582
+ <div id="method-M000137" class="method-detail">
583
+ <a name="M000137"></a>
584
+
585
+ <div class="method-heading">
586
+ <a href="#M000137" class="method-signature">
587
+ <span class="method-name">process_options</span><span class="method-args">(display=false)</span>
588
+ </a>
589
+ </div>
590
+
591
+ <div class="method-description">
592
+ <p>
593
+ <a href="CLI.html#M000130">process_options</a>
594
+ </p>
595
+ <p>
596
+ Handle the command-line options for stella. Note: The command specific
597
+ options are handled by the command/*.rb classes
598
+ </p>
599
+ <table>
600
+ <tr><td valign="top">display:</td><td>When true, it&#8216;ll print out the options and not parse the arguments
601
+
602
+ </td></tr>
603
+ </table>
604
+ <p><a class="source-toggle" href="#"
605
+ onclick="toggleCode('M000137-source');return false;">[Source]</a></p>
606
+ <div class="method-source-code" id="M000137-source">
607
+ <pre>
608
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 132</span>
609
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_options</span>(<span class="ruby-identifier">display</span>=<span class="ruby-keyword kw">false</span>)
610
+ 133:
611
+ 134: <span class="ruby-identifier">opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
612
+ 135: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_usage</span>)
613
+ 136: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_preamble</span>, <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">', '</span>))
614
+ 137:
615
+ 138: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_options_title</span>))
616
+ 139: <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-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_version</span>)) <span class="ruby-keyword kw">do</span>
617
+ 140: <span class="ruby-identifier">output_version</span>
618
+ 141: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
619
+ 142: <span class="ruby-keyword kw">end</span>
620
+ 143: <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-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_help</span>)) { <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>; <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span> }
621
+ 144:
622
+ 145: <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-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_verbose</span>)) <span class="ruby-keyword kw">do</span>
623
+ 146: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
624
+ 147: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
625
+ 148: <span class="ruby-keyword kw">end</span>
626
+ 149: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-q'</span>, <span class="ruby-value str">'--quiet'</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_quiet</span>)) <span class="ruby-keyword kw">do</span>
627
+ 150: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">quiet</span> = <span class="ruby-keyword kw">true</span>
628
+ 151: <span class="ruby-keyword kw">end</span>
629
+ 152: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--overhead'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_overhead</span>)) <span class="ruby-keyword kw">do</span>
630
+ 153: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">showoverhead</span> = <span class="ruby-keyword kw">true</span>
631
+ 154: <span class="ruby-keyword kw">end</span>
632
+ 155:
633
+ 156: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-O'</span>, <span class="ruby-value str">'--stdout'</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_stdout</span>)) <span class="ruby-keyword kw">do</span>
634
+ 157: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">stdout</span> = <span class="ruby-keyword kw">true</span>
635
+ 158: <span class="ruby-keyword kw">end</span>
636
+ 159: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-E'</span>, <span class="ruby-value str">'--stderr'</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_stderr</span>)) <span class="ruby-keyword kw">do</span>
637
+ 160: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">stdout</span> = <span class="ruby-keyword kw">true</span>
638
+ 161: <span class="ruby-keyword kw">end</span>
639
+ 162:
640
+ 163: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-m'</span>, <span class="ruby-value str">'--message=M'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_message</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
641
+ 164: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">message</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>
642
+ 165: <span class="ruby-keyword kw">end</span>
643
+ 166: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-s'</span>, <span class="ruby-value str">'--sleep=N'</span>, <span class="ruby-constant">Float</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_sleep</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
644
+ 167: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">sleep</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_f</span>
645
+ 168: <span class="ruby-keyword kw">end</span>
646
+ 169:
647
+ 170: <span class="ruby-comment cmt"># Ramp up, establish default and enforce limits</span>
648
+ 171: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-r [R,U]'</span>, <span class="ruby-value str">'--rampup'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_rampup</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
649
+ 172: <span class="ruby-identifier">amount</span> = (<span class="ruby-identifier">v</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">expand_str</span>(<span class="ruby-identifier">v</span>) <span class="ruby-operator">:</span> [<span class="ruby-value">10</span>,<span class="ruby-value">100</span>]
650
+ 173: <span class="ruby-identifier">amount</span>[<span class="ruby-value">0</span>] = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>(<span class="ruby-identifier">amount</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_i</span>, <span class="ruby-value">1</span>, <span class="ruby-value">100</span>)
651
+ 174: <span class="ruby-identifier">amount</span>[<span class="ruby-value">1</span>] = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>((<span class="ruby-identifier">amount</span>[<span class="ruby-value">1</span>]) <span class="ruby-operator">?</span> <span class="ruby-identifier">amount</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>, (<span class="ruby-identifier">amount</span>[<span class="ruby-value">0</span>]<span class="ruby-operator">*</span><span class="ruby-value">2</span>), <span class="ruby-value">1000</span>)
652
+ 175: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">rampup</span> = <span class="ruby-identifier">amount</span>
653
+ 176: <span class="ruby-keyword kw">end</span>
654
+ 177:
655
+ 178: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-x'</span>, <span class="ruby-value str">'--testreps=N'</span>, <span class="ruby-constant">Integer</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_testreps</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
656
+ 179: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">testreps</span> = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>(<span class="ruby-identifier">v</span>,<span class="ruby-value">1</span>,<span class="ruby-value">10</span>)
657
+ 180: <span class="ruby-keyword kw">end</span>
658
+ 181:
659
+ 182: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-w [N]'</span>, <span class="ruby-value str">'--warmup'</span>, <span class="ruby-constant">Float</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_warmup</span>, <span class="ruby-value">0</span><span class="ruby-value">.1</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
660
+ 183: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">warmup</span> = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>(((<span class="ruby-identifier">v</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>), <span class="ruby-value">0</span><span class="ruby-value">.1</span>, <span class="ruby-value">1</span>)
661
+ 184: <span class="ruby-keyword kw">end</span>
662
+ 185:
663
+ 186: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-a'</span>, <span class="ruby-value str">'--agent=S'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_agent</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
664
+ 187: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Agent is empty&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">empty?</span>
665
+ 188: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">agents</span> <span class="ruby-operator">||=</span> []
666
+ 189: <span class="ruby-identifier">agent_ary</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">expand_str</span>(<span class="ruby-identifier">v</span>)
667
+ 190: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">agents</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">agent_ary</span>)
668
+ 191: <span class="ruby-keyword kw">end</span>
669
+ 192:
670
+ 193: <span class="ruby-comment cmt"># The following options are considered &quot;repeatable&quot; so they're stored in </span>
671
+ 194: <span class="ruby-comment cmt"># the config file and used as defaults for the next run. </span>
672
+ 195: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-d'</span>, <span class="ruby-value str">'--datapath=S'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_datapath</span>, <span class="ruby-node">&quot;.#{File::SEPARATOR}stella&quot;</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
673
+ 196: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">data_path</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>
674
+ 197: <span class="ruby-keyword kw">end</span>
675
+ 198: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-f'</span>, <span class="ruby-value str">'--format=S'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_format</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
676
+ 199: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">format</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>
677
+ 200: <span class="ruby-keyword kw">end</span>
678
+ 201:
679
+ 202: <span class="ruby-comment cmt"># This is used for printing the help from other parts of this class</span>
680
+ 203: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">display</span>
681
+ 204: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">info</span> <span class="ruby-identifier">opts</span>
682
+ 205: <span class="ruby-keyword kw">return</span>
683
+ 206: <span class="ruby-keyword kw">end</span>
684
+ 207:
685
+ 208: <span class="ruby-comment cmt"># This applies the configuration above to the arguments provided. </span>
686
+ 209: <span class="ruby-comment cmt"># It also removes the discovered options from @stella_arguments</span>
687
+ 210: <span class="ruby-comment cmt"># leaving only the unnamed arguments. </span>
688
+ 211: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span>(<span class="ruby-ivar">@stella_arguments</span>)
689
+ 212:
690
+ 213: <span class="ruby-comment cmt"># Quiet supercedes verbose</span>
691
+ 214: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> = <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">quiet</span>
692
+ 215:
693
+ 216:
694
+ 217: <span class="ruby-comment cmt"># This outputs when debugging is enabled. </span>
695
+ 218: <span class="ruby-identifier">dump_inputs</span>
696
+ 219:
697
+ 220:
698
+ 221: <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>
699
+ 222: <span class="ruby-comment cmt"># We want to replace this text so we grab just the name of the argument</span>
700
+ 223: <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>)
701
+ 224: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidArgument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">badarg</span>)
702
+ 225: <span class="ruby-keyword kw">end</span>
703
+ </pre>
704
+ </div>
705
+ </div>
706
+ </div>
707
+
708
+ <div id="method-M000130" class="method-detail">
709
+ <a name="M000130"></a>
710
+
711
+ <div class="method-heading">
712
+ <a href="#M000130" class="method-signature">
713
+ <span class="method-name">process_options</span><span class="method-args">(display=false)</span>
714
+ </a>
715
+ </div>
716
+
717
+ <div class="method-description">
718
+ <p>
719
+ <a href="CLI.html#M000130">process_options</a>
720
+ </p>
721
+ <p>
722
+ Handle the command-line options for stella. Note: The command specific
723
+ options are handled by the command/*.rb classes
724
+ </p>
725
+ <table>
726
+ <tr><td valign="top">display:</td><td>When true, it&#8216;ll print out the options and not parse the arguments
727
+
728
+ </td></tr>
729
+ </table>
730
+ <p><a class="source-toggle" href="#"
731
+ onclick="toggleCode('M000130-source');return false;">[Source]</a></p>
732
+ <div class="method-source-code" id="M000130-source">
733
+ <pre>
734
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 132</span>
735
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_options</span>(<span class="ruby-identifier">display</span>=<span class="ruby-keyword kw">false</span>)
736
+ 133:
737
+ 134: <span class="ruby-identifier">opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
738
+ 135: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_usage</span>)
739
+ 136: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_preamble</span>, <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">', '</span>))
740
+ 137:
741
+ 138: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_options_title</span>))
742
+ 139: <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-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_version</span>)) <span class="ruby-keyword kw">do</span>
743
+ 140: <span class="ruby-identifier">output_version</span>
744
+ 141: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
745
+ 142: <span class="ruby-keyword kw">end</span>
746
+ 143: <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-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_help</span>)) { <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>; <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span> }
747
+ 144:
748
+ 145: <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-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_verbose</span>)) <span class="ruby-keyword kw">do</span>
749
+ 146: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
750
+ 147: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
751
+ 148: <span class="ruby-keyword kw">end</span>
752
+ 149: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-q'</span>, <span class="ruby-value str">'--quiet'</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_quiet</span>)) <span class="ruby-keyword kw">do</span>
753
+ 150: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">quiet</span> = <span class="ruby-keyword kw">true</span>
754
+ 151: <span class="ruby-keyword kw">end</span>
755
+ 152: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--overhead'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_overhead</span>)) <span class="ruby-keyword kw">do</span>
756
+ 153: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">showoverhead</span> = <span class="ruby-keyword kw">true</span>
757
+ 154: <span class="ruby-keyword kw">end</span>
758
+ 155:
759
+ 156: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-O'</span>, <span class="ruby-value str">'--stdout'</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_stdout</span>)) <span class="ruby-keyword kw">do</span>
760
+ 157: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">stdout</span> = <span class="ruby-keyword kw">true</span>
761
+ 158: <span class="ruby-keyword kw">end</span>
762
+ 159: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-E'</span>, <span class="ruby-value str">'--stderr'</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_stderr</span>)) <span class="ruby-keyword kw">do</span>
763
+ 160: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">stdout</span> = <span class="ruby-keyword kw">true</span>
764
+ 161: <span class="ruby-keyword kw">end</span>
765
+ 162:
766
+ 163: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-m'</span>, <span class="ruby-value str">'--message=M'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_message</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
767
+ 164: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">message</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>
768
+ 165: <span class="ruby-keyword kw">end</span>
769
+ 166: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-s'</span>, <span class="ruby-value str">'--sleep=N'</span>, <span class="ruby-constant">Float</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_sleep</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
770
+ 167: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">sleep</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_f</span>
771
+ 168: <span class="ruby-keyword kw">end</span>
772
+ 169:
773
+ 170: <span class="ruby-comment cmt"># Ramp up, establish default and enforce limits</span>
774
+ 171: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-r [R,U]'</span>, <span class="ruby-value str">'--rampup'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_rampup</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
775
+ 172: <span class="ruby-identifier">amount</span> = (<span class="ruby-identifier">v</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">expand_str</span>(<span class="ruby-identifier">v</span>) <span class="ruby-operator">:</span> [<span class="ruby-value">10</span>,<span class="ruby-value">100</span>]
776
+ 173: <span class="ruby-identifier">amount</span>[<span class="ruby-value">0</span>] = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>(<span class="ruby-identifier">amount</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_i</span>, <span class="ruby-value">1</span>, <span class="ruby-value">100</span>)
777
+ 174: <span class="ruby-identifier">amount</span>[<span class="ruby-value">1</span>] = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>((<span class="ruby-identifier">amount</span>[<span class="ruby-value">1</span>]) <span class="ruby-operator">?</span> <span class="ruby-identifier">amount</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>, (<span class="ruby-identifier">amount</span>[<span class="ruby-value">0</span>]<span class="ruby-operator">*</span><span class="ruby-value">2</span>), <span class="ruby-value">1000</span>)
778
+ 175: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">rampup</span> = <span class="ruby-identifier">amount</span>
779
+ 176: <span class="ruby-keyword kw">end</span>
780
+ 177:
781
+ 178: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-x'</span>, <span class="ruby-value str">'--testreps=N'</span>, <span class="ruby-constant">Integer</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_testreps</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
782
+ 179: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">testreps</span> = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>(<span class="ruby-identifier">v</span>,<span class="ruby-value">1</span>,<span class="ruby-value">10</span>)
783
+ 180: <span class="ruby-keyword kw">end</span>
784
+ 181:
785
+ 182: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-w [N]'</span>, <span class="ruby-value str">'--warmup'</span>, <span class="ruby-constant">Float</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_warmup</span>, <span class="ruby-value">0</span><span class="ruby-value">.1</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
786
+ 183: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">warmup</span> = <span class="ruby-constant">MathUtil</span>.<span class="ruby-identifier">enforce_limit</span>(((<span class="ruby-identifier">v</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>), <span class="ruby-value">0</span><span class="ruby-value">.1</span>, <span class="ruby-value">1</span>)
787
+ 184: <span class="ruby-keyword kw">end</span>
788
+ 185:
789
+ 186: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-a'</span>, <span class="ruby-value str">'--agent=S'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_agent</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
790
+ 187: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Agent is empty&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">empty?</span>
791
+ 188: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">agents</span> <span class="ruby-operator">||=</span> []
792
+ 189: <span class="ruby-identifier">agent_ary</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">expand_str</span>(<span class="ruby-identifier">v</span>)
793
+ 190: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">agents</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">agent_ary</span>)
794
+ 191: <span class="ruby-keyword kw">end</span>
795
+ 192:
796
+ 193: <span class="ruby-comment cmt"># The following options are considered &quot;repeatable&quot; so they're stored in </span>
797
+ 194: <span class="ruby-comment cmt"># the config file and used as defaults for the next run. </span>
798
+ 195: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-d'</span>, <span class="ruby-value str">'--datapath=S'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_datapath</span>, <span class="ruby-node">&quot;.#{File::SEPARATOR}stella&quot;</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
799
+ 196: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">data_path</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>
800
+ 197: <span class="ruby-keyword kw">end</span>
801
+ 198: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-f'</span>, <span class="ruby-value str">'--format=S'</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">TEXT</span>.<span class="ruby-identifier">msg</span>(<span class="ruby-identifier">:option_help_format</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
802
+ 199: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">format</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>
803
+ 200: <span class="ruby-keyword kw">end</span>
804
+ 201:
805
+ 202: <span class="ruby-comment cmt"># This is used for printing the help from other parts of this class</span>
806
+ 203: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">display</span>
807
+ 204: <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">LOGGER</span>.<span class="ruby-identifier">info</span> <span class="ruby-identifier">opts</span>
808
+ 205: <span class="ruby-keyword kw">return</span>
809
+ 206: <span class="ruby-keyword kw">end</span>
810
+ 207:
811
+ 208: <span class="ruby-comment cmt"># This applies the configuration above to the arguments provided. </span>
812
+ 209: <span class="ruby-comment cmt"># It also removes the discovered options from @stella_arguments</span>
813
+ 210: <span class="ruby-comment cmt"># leaving only the unnamed arguments. </span>
814
+ 211: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span>(<span class="ruby-ivar">@stella_arguments</span>)
815
+ 212:
816
+ 213: <span class="ruby-comment cmt"># Quiet supercedes verbose</span>
817
+ 214: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">verbose</span> = <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">quiet</span>
818
+ 215:
819
+ 216:
820
+ 217: <span class="ruby-comment cmt"># This outputs when debugging is enabled. </span>
821
+ 218: <span class="ruby-identifier">dump_inputs</span>
822
+ 219:
823
+ 220:
824
+ 221: <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>
825
+ 222: <span class="ruby-comment cmt"># We want to replace this text so we grab just the name of the argument</span>
826
+ 223: <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>)
827
+ 224: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidArgument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">badarg</span>)
828
+ 225: <span class="ruby-keyword kw">end</span>
829
+ </pre>
830
+ </div>
831
+ </div>
832
+ </div>
833
+
834
+ <div id="method-M000131" class="method-detail">
835
+ <a name="M000131"></a>
836
+
837
+ <div class="method-heading">
838
+ <a href="#M000131" class="method-signature">
839
+ <span class="method-name">process_standard_input</span><span class="method-args">()</span>
840
+ </a>
841
+ </div>
842
+
843
+ <div class="method-description">
844
+ <p>
845
+ Process data sent to STDIN (a pipe for example). We assume each line is a
846
+ URI and add it to @arguments.
847
+ </p>
848
+ <p><a class="source-toggle" href="#"
849
+ onclick="toggleCode('M000131-source');return false;">[Source]</a></p>
850
+ <div class="method-source-code" id="M000131-source">
851
+ <pre>
852
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 230</span>
853
+ 230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_standard_input</span>
854
+ 231: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stdin</span>.<span class="ruby-identifier">tty?</span> <span class="ruby-comment cmt"># We only want piped data</span>
855
+ 232:
856
+ 233: <span class="ruby-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@stdin</span>.<span class="ruby-identifier">eof?</span> <span class="ruby-keyword kw">do</span>
857
+ 234: <span class="ruby-identifier">line</span> = <span class="ruby-ivar">@stdin</span>.<span class="ruby-identifier">readline</span>
858
+ 235: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">chomp!</span>
859
+ 236: <span class="ruby-ivar">@arguments</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
860
+ 237: <span class="ruby-keyword kw">end</span>
861
+ 238:
862
+ 239: <span class="ruby-keyword kw">end</span>
863
+ </pre>
864
+ </div>
865
+ </div>
866
+ </div>
867
+
868
+ <div id="method-M000138" class="method-detail">
869
+ <a name="M000138"></a>
870
+
871
+ <div class="method-heading">
872
+ <a href="#M000138" class="method-signature">
873
+ <span class="method-name">process_standard_input</span><span class="method-args">()</span>
874
+ </a>
875
+ </div>
876
+
877
+ <div class="method-description">
878
+ <p>
879
+ Process data sent to STDIN (a pipe for example). We assume each line is a
880
+ URI and add it to @arguments.
881
+ </p>
882
+ <p><a class="source-toggle" href="#"
883
+ onclick="toggleCode('M000138-source');return false;">[Source]</a></p>
884
+ <div class="method-source-code" id="M000138-source">
885
+ <pre>
886
+ <span class="ruby-comment cmt"># File lib/stella/cli.rb, line 230</span>
887
+ 230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_standard_input</span>
888
+ 231: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stdin</span>.<span class="ruby-identifier">tty?</span> <span class="ruby-comment cmt"># We only want piped data</span>
889
+ 232:
890
+ 233: <span class="ruby-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@stdin</span>.<span class="ruby-identifier">eof?</span> <span class="ruby-keyword kw">do</span>
891
+ 234: <span class="ruby-identifier">line</span> = <span class="ruby-ivar">@stdin</span>.<span class="ruby-identifier">readline</span>
892
+ 235: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">chomp!</span>
893
+ 236: <span class="ruby-ivar">@arguments</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
894
+ 237: <span class="ruby-keyword kw">end</span>
895
+ 238:
896
+ 239: <span class="ruby-keyword kw">end</span>
897
+ </pre>
898
+ </div>
899
+ </div>
900
+ </div>
901
+
902
+
903
+ </div>
904
+
905
+
906
+ </div>
907
+
908
+
909
+ <div id="validator-badges">
910
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
911
+ </div>
912
+
913
+ </body>
914
+ </html>