stella 0.3.2 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. data/README.txt +24 -84
  2. data/Rakefile +1 -6
  3. data/doc/classes/Crypto.html +248 -0
  4. data/doc/classes/Crypto/Key.html +308 -0
  5. data/doc/classes/Enumerable.html +309 -0
  6. data/doc/classes/FileUtil.html +310 -0
  7. data/doc/classes/HTTPUtil.html +530 -0
  8. data/doc/classes/MathUtil.html +210 -0
  9. data/doc/classes/Stella.html +238 -0
  10. data/doc/classes/Stella/Adapter.html +127 -0
  11. data/doc/classes/Stella/Adapter/ApacheBench.html +1076 -0
  12. data/doc/classes/Stella/Adapter/Base.html +432 -0
  13. data/doc/classes/Stella/Adapter/CommandNotReady.html +146 -0
  14. data/doc/classes/Stella/Adapter/Httperf.html +949 -0
  15. data/doc/classes/Stella/Adapter/Siege.html +1011 -0
  16. data/doc/classes/Stella/CLI.html +914 -0
  17. data/doc/classes/Stella/CLI/Base.html +186 -0
  18. data/doc/classes/Stella/CLI/Language.html +149 -0
  19. data/doc/classes/Stella/CLI/LocalTest.html +268 -0
  20. data/doc/classes/Stella/Command.html +111 -0
  21. data/doc/classes/Stella/Command/Base.html +335 -0
  22. data/doc/classes/Stella/Config.html +292 -0
  23. data/doc/classes/Stella/InvalidArgument.html +242 -0
  24. data/doc/classes/Stella/LocalTest.html +450 -0
  25. data/doc/classes/Stella/Logger.html +548 -0
  26. data/doc/classes/Stella/Response.html +846 -0
  27. data/doc/classes/Stella/Storable.html +928 -0
  28. data/doc/classes/Stella/Test.html +142 -0
  29. data/doc/classes/Stella/Test/DaySummary.html +249 -0
  30. data/doc/classes/Stella/Test/Definition.html +294 -0
  31. data/doc/classes/Stella/Test/Definition/Rampup.html +215 -0
  32. data/doc/classes/Stella/Test/RunSummary.html +315 -0
  33. data/doc/classes/Stella/Test/SummaryBase.html +286 -0
  34. data/doc/classes/Stella/Test/TestSummary.html +200 -0
  35. data/doc/classes/Stella/Text.html +581 -0
  36. data/doc/classes/Stella/Text/Resource.html +289 -0
  37. data/doc/classes/Stella/UnavailableAdapter.html +242 -0
  38. data/doc/classes/Stella/UnknownValue.html +242 -0
  39. data/doc/classes/Stella/UnsupportedLanguage.html +115 -0
  40. data/doc/classes/Stella/Util.html +348 -0
  41. data/doc/classes/TextGraph.html +460 -0
  42. data/doc/classes/TimerUtil.html +431 -0
  43. data/doc/created.rid +1 -0
  44. data/doc/files/LICENSE_txt.html +129 -0
  45. data/doc/files/README_txt.html +209 -0
  46. data/doc/files/lib/stella/adapter/ab_rb.html +101 -0
  47. data/doc/files/lib/stella/adapter/base_rb.html +101 -0
  48. data/doc/files/lib/stella/adapter/httperf_rb.html +101 -0
  49. data/doc/files/lib/stella/adapter/siege_rb.html +101 -0
  50. data/doc/files/lib/stella/cli/base_rb.html +101 -0
  51. data/doc/files/lib/stella/cli/language_rb.html +101 -0
  52. data/doc/files/lib/stella/cli/localtest_rb.html +101 -0
  53. data/doc/files/lib/stella/cli_rb.html +112 -0
  54. data/doc/files/lib/stella/command/base_rb.html +101 -0
  55. data/doc/files/lib/stella/command/localtest_rb.html +101 -0
  56. data/doc/files/lib/stella/logger_rb.html +101 -0
  57. data/doc/files/lib/stella/response_rb.html +101 -0
  58. data/doc/files/lib/stella/storable_rb.html +109 -0
  59. data/doc/files/lib/stella/support_rb.html +101 -0
  60. data/doc/files/lib/stella/test/daysummary_rb.html +101 -0
  61. data/doc/files/lib/stella/test/definition_rb.html +101 -0
  62. data/doc/files/lib/stella/test/runsummary_rb.html +101 -0
  63. data/doc/files/lib/stella/test/summarybase_rb.html +101 -0
  64. data/doc/files/lib/stella/test/testsummary_rb.html +108 -0
  65. data/doc/files/lib/stella/text/resource_rb.html +108 -0
  66. data/doc/files/lib/stella/text_rb.html +108 -0
  67. data/doc/files/lib/stella_rb.html +128 -0
  68. data/doc/files/lib/utils/crypto-key_rb.html +116 -0
  69. data/doc/files/lib/utils/fileutil_rb.html +108 -0
  70. data/doc/files/lib/utils/httputil_rb.html +110 -0
  71. data/doc/files/lib/utils/mathutil_rb.html +101 -0
  72. data/doc/files/lib/utils/textgraph_rb.html +138 -0
  73. data/doc/files/lib/utils/timerutil_rb.html +108 -0
  74. data/doc/fr_class_index.html +66 -0
  75. data/doc/fr_file_index.html +62 -0
  76. data/doc/fr_method_index.html +309 -0
  77. data/doc/index.html +24 -0
  78. data/doc/rdoc-style.css +208 -0
  79. data/lib/stella.rb +5 -6
  80. data/lib/stella/adapter/ab.rb +4 -31
  81. data/lib/stella/adapter/base.rb +1 -15
  82. data/lib/stella/adapter/httperf.rb +4 -35
  83. data/lib/stella/adapter/siege.rb +29 -51
  84. data/lib/stella/cli.rb +22 -45
  85. data/lib/stella/cli/language.rb +0 -2
  86. data/lib/stella/cli/localtest.rb +0 -5
  87. data/lib/stella/command/base.rb +1 -1
  88. data/lib/stella/command/localtest.rb +68 -84
  89. data/lib/stella/test/daysummary.rb +93 -0
  90. data/lib/stella/test/definition.rb +5 -10
  91. data/lib/stella/test/{run/summary.rb → runsummary.rb} +6 -4
  92. data/lib/stella/test/{base.rb → summarybase.rb} +7 -3
  93. data/lib/stella/test/{summary.rb → testsummary.rb} +29 -27
  94. data/lib/utils/mathutil.rb +34 -36
  95. data/spec/base.rb +26 -0
  96. data/spec/shell_spec.rb +12 -0
  97. data/support/text/en.yaml +1 -7
  98. metadata +102 -8
  99. data/lib/stella/cli/agents.rb +0 -73
  100. data/lib/utils/escape.rb +0 -302
@@ -0,0 +1,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>