drydock 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drydock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -31,30 +31,6 @@ files:
31
31
  - bin/example
32
32
  - drydock.gemspec
33
33
  - lib/drydock.rb
34
- - test/command_test.rb
35
- - doc
36
- - doc/classes
37
- - doc/classes/Drydock
38
- - doc/classes/Drydock/Command.html
39
- - doc/classes/Drydock/InvalidArgument.html
40
- - doc/classes/Drydock/MissingArgument.html
41
- - doc/classes/Drydock/NoCommandsDefined.html
42
- - doc/classes/Drydock/UnknownCommand.html
43
- - doc/classes/Drydock.html
44
- - doc/created.rid
45
- - doc/files
46
- - doc/files/bin
47
- - doc/files/bin/example.html
48
- - doc/files/CHANGES_txt.html
49
- - doc/files/lib
50
- - doc/files/lib/drydock_rb.html
51
- - doc/files/LICENSE_txt.html
52
- - doc/files/README_rdoc.html
53
- - doc/fr_class_index.html
54
- - doc/fr_file_index.html
55
- - doc/fr_method_index.html
56
- - doc/index.html
57
- - doc/rdoc-style.css
58
34
  has_rdoc: true
59
35
  homepage: http://github.com/delano/drydock
60
36
  post_install_message:
@@ -1,535 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
- <html lang='en'>
3
- <head>
4
- <title>Module: Drydock [A seaworthy DSL for writing command line apps]</title>
5
- <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
- <link href='.././rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
- <script type='text/javascript'>
8
- //<![CDATA[
9
- function popupCode(url) {
10
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
- }
12
-
13
- function toggleCode(id) {
14
- var code = document.getElementById(id)
15
-
16
- code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
- return true
18
- }
19
-
20
- // Make codeblocks hidden by default
21
- document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
- //]]>
23
- </script>
24
- </head>
25
- <body class='page'>
26
- <div class='class' id='wrapper'>
27
- <div class='header'>
28
- <h1 class='name'>
29
- <span class='type'>Module</span>
30
- Drydock
31
- </h1>
32
- <ol class='paths'>
33
- <li>
34
- <a href="../files/lib/drydock_rb.html">lib/drydock.rb</a>
35
- </li>
36
- </ol>
37
- </div>
38
- <div id='content'>
39
- <div id='text'>
40
- <div id='description'>
41
- <hr size="1"></hr><p>
42
- <a href="Drydock.html">Drydock</a> is a DSL for command-line apps. See <a
43
- href="../files/bin/example.html">bin/example</a> for usage examples.
44
- </p>
45
- </div>
46
- <div id='method-list'>
47
- <h2>Methods</h2>
48
- <h3>public instance</h3>
49
- <ol>
50
- <li><a href="#M000006">after</a></li>
51
- <li><a href="#M000014">alias_command</a></li>
52
- <li><a href="#M000005">before</a></li>
53
- <li><a href="#M000013">command</a></li>
54
- <li><a href="#M000015">command_alias</a></li>
55
- <li><a href="#M000016">commands</a></li>
56
- <li><a href="#M000001">debug</a></li>
57
- <li><a href="#M000002">debug?</a></li>
58
- <li><a href="#M000003">default</a></li>
59
- <li><a href="#M000009">get_current_option_parser</a></li>
60
- <li><a href="#M000011">global_option</a></li>
61
- <li><a href="#M000007">global_usage</a></li>
62
- <li><a href="#M000019">has_run?</a></li>
63
- <li><a href="#M000010">ignore</a></li>
64
- <li><a href="#M000012">option</a></li>
65
- <li><a href="#M000020">run!</a></li>
66
- <li><a href="#M000018">run=</a></li>
67
- <li><a href="#M000017">run?</a></li>
68
- <li><a href="#M000004">stdin</a></li>
69
- <li><a href="#M000008">usage</a></li>
70
- </ol>
71
- </div>
72
- <div id='section'>
73
- <div id='class-list'>
74
- <h2>Classes and Modules</h2>
75
- Class <a href="Drydock/Command.html" class="link">Drydock::Command</a><br />
76
- Class <a href="Drydock/InvalidArgument.html" class="link">Drydock::InvalidArgument</a><br />
77
- Class <a href="Drydock/MissingArgument.html" class="link">Drydock::MissingArgument</a><br />
78
- Class <a href="Drydock/NoCommandsDefined.html" class="link">Drydock::NoCommandsDefined</a><br />
79
- Class <a href="Drydock/UnknownCommand.html" class="link">Drydock::UnknownCommand</a><br />
80
- </div>
81
- <div id='constants-list'>
82
- <h2>Constants</h2>
83
- <div class='name-list'>
84
- <table summary='Constants'>
85
- <tr class='top-aligned-row context-row'>
86
- <td class='context-item-name'>VERSION</td>
87
- <td>=</td>
88
- <td class='context-item-value'>0.3</td>
89
- </tr>
90
- </table>
91
- </div>
92
- </div>
93
- <div id='methods'>
94
- <h2>Public instance methods</h2>
95
- <div class='public-instance method' id='method-M000006'>
96
- <a name='M000006'> </a>
97
- <div class='synopsis'>
98
- <span class='name'>after</span>
99
- <span class='arguments'>(&amp;b)</span>
100
- </div>
101
- <div class='description'>
102
- <p>
103
- Define a block to be called after the command. This is useful for stopping,
104
- closing, etc... the stuff in the before block.
105
- </p>
106
- </div>
107
- <div class='source'>
108
- <a class='source-toggle' href='#' onclick="toggleCode('M000006-source'); return false">
109
- [show source]
110
- </a>
111
- <pre id='M000006-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 177</span>&#x000A;177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;178: <span class="ruby-ivar">@@after_block</span> = <span class="ruby-identifier">b</span>&#x000A;179: <span class="ruby-keyword kw">end</span></pre>
112
- </div>
113
- </div>
114
- <div class='public-instance method' id='method-M000014'>
115
- <a name='M000014'> </a>
116
- <div class='synopsis'>
117
- <span class='name'>alias_command</span>
118
- <span class='arguments'>(aliaz, cmd)</span>
119
- </div>
120
- <div class='description'>
121
- <p>
122
- Used to create an alias to a defined command. Here&#8217;s an example:
123
- </p>
124
- <pre>command :task do; ...; end&#x000A;alias_command :pointer, :task</pre>
125
- <p>
126
- Either name can be used on the command-line:
127
- </p>
128
- <pre>$ script task [options]&#x000A;$ script pointer [options]</pre>
129
- <p>
130
- Inside of the command definition, you have access to the command name that
131
- was used via obj.alias.
132
- </p>
133
- </div>
134
- <div class='source'>
135
- <a class='source-toggle' href='#' onclick="toggleCode('M000014-source'); return false">
136
- [show source]
137
- </a>
138
- <pre id='M000014-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 286</span>&#x000A;286: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alias_command</span>(<span class="ruby-identifier">aliaz</span>, <span class="ruby-identifier">cmd</span>)&#x000A;287: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">commands</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cmd</span>&#x000A;288: <span class="ruby-ivar">@@commands</span>[<span class="ruby-identifier">aliaz</span>] = <span class="ruby-identifier">commands</span>[<span class="ruby-identifier">cmd</span>]&#x000A;289: <span class="ruby-keyword kw">end</span></pre>
139
- </div>
140
- </div>
141
- <div class='public-instance method' id='method-M000005'>
142
- <a name='M000005'> </a>
143
- <div class='synopsis'>
144
- <span class='name'>before</span>
145
- <span class='arguments'>(&amp;b)</span>
146
- </div>
147
- <div class='description'>
148
- <p>
149
- Define a block to be called before the command. This is useful for opening
150
- database connections, etc...
151
- </p>
152
- </div>
153
- <div class='source'>
154
- <a class='source-toggle' href='#' onclick="toggleCode('M000005-source'); return false">
155
- [show source]
156
- </a>
157
- <pre id='M000005-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 171</span>&#x000A;171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;172: <span class="ruby-ivar">@@before_block</span> = <span class="ruby-identifier">b</span>&#x000A;173: <span class="ruby-keyword kw">end</span></pre>
158
- </div>
159
- </div>
160
- <div class='public-instance method' id='method-M000013'>
161
- <a name='M000013'> </a>
162
- <div class='synopsis'>
163
- <span class='name'>command</span>
164
- <span class='arguments'>(*cmds, &amp;b)</span>
165
- </div>
166
- <div class='description'>
167
- <p>
168
- Define a command.
169
- </p>
170
- <pre>command :task do&#x000A; ...&#x000A;end</pre>
171
- <p>
172
- A custom command class can be specified using Hash syntax. The class must
173
- inherit from <a href="Drydock/Command.html">Drydock::Command</a> (class
174
- CustomeClass < <a href="Drydock/Command.html">Drydock::Command</a>)
175
- </p>
176
- <pre>command :task =&gt; CustomCommand do&#x000A; ...&#x000A;end</pre>
177
- </div>
178
- <div class='source'>
179
- <a class='source-toggle' href='#' onclick="toggleCode('M000013-source'); return false">
180
- [show source]
181
- </a>
182
- <pre id='M000013-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 256</span>&#x000A;256: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">cmds</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;257: <span class="ruby-ivar">@@command_index</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>&#x000A;258: <span class="ruby-ivar">@@command_opts_parser</span> <span class="ruby-operator">||=</span> []&#x000A;259: <span class="ruby-ivar">@@command_option_names</span> <span class="ruby-operator">||=</span> []&#x000A;260: <span class="ruby-identifier">cmds</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cmd</span><span class="ruby-operator">|</span> &#x000A;261: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cmd</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Hash</span>&#x000A;262: <span class="ruby-identifier">c</span> = <span class="ruby-identifier">cmd</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cmd</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">first</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;263: <span class="ruby-keyword kw">else</span>&#x000A;264: <span class="ruby-identifier">c</span> = <span class="ruby-constant">Drydock</span><span class="ruby-operator">::</span><span class="ruby-constant">Command</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cmd</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;265: <span class="ruby-keyword kw">end</span>&#x000A;266: <span class="ruby-identifier">commands</span>[<span class="ruby-identifier">c</span>.<span class="ruby-identifier">cmd</span>] = <span class="ruby-identifier">c</span>&#x000A;267: <span class="ruby-identifier">command_index_map</span>[<span class="ruby-identifier">c</span>.<span class="ruby-identifier">cmd</span>] = <span class="ruby-ivar">@@command_index</span>&#x000A;268: <span class="ruby-ivar">@@command_index</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>&#x000A;269: <span class="ruby-keyword kw">end</span>&#x000A;270: &#x000A;271: <span class="ruby-keyword kw">end</span></pre>
183
- </div>
184
- </div>
185
- <div class='public-instance method' id='method-M000015'>
186
- <a name='M000015'> </a>
187
- <div class='synopsis'>
188
- <span class='name'>command_alias</span>
189
- <span class='arguments'>(aliaz, cmd)</span>
190
- </div>
191
- <div class='description'>
192
- <p>
193
- Alias for <a href="Drydock.html#M000014">alias_command</a>
194
- </p>
195
- </div>
196
- </div>
197
- <div class='public-instance method' id='method-M000016'>
198
- <a name='M000016'> </a>
199
- <div class='synopsis'>
200
- <span class='name'>commands</span>
201
- <span class='arguments'>()</span>
202
- </div>
203
- <div class='description'>
204
- <p>
205
- An array of the currently defined <a
206
- href="Drydock/Command.html">Drydock::Command</a> objects
207
- </p>
208
- </div>
209
- <div class='source'>
210
- <a class='source-toggle' href='#' onclick="toggleCode('M000016-source'); return false">
211
- [show source]
212
- </a>
213
- <pre id='M000016-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 293</span>&#x000A;293: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">commands</span>&#x000A;294: <span class="ruby-ivar">@@commands</span> <span class="ruby-operator">||=</span> {}&#x000A;295: <span class="ruby-keyword kw">end</span></pre>
214
- </div>
215
- </div>
216
- <div class='public-instance method' id='method-M000001'>
217
- <a name='M000001'> </a>
218
- <div class='synopsis'>
219
- <span class='name'>debug</span>
220
- <span class='arguments'>(toggle=false)</span>
221
- </div>
222
- <div class='description'>
223
- <p>
224
- Enable or disable debug output.
225
- </p>
226
- <pre>debug :on&#x000A;debug :off</pre>
227
- <p>
228
- Calling without :on or :off will toggle the value.
229
- </p>
230
- </div>
231
- <div class='source'>
232
- <a class='source-toggle' href='#' onclick="toggleCode('M000001-source'); return false">
233
- [show source]
234
- </a>
235
- <pre id='M000001-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 138</span>&#x000A;138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">debug</span>(<span class="ruby-identifier">toggle</span>=<span class="ruby-keyword kw">false</span>)&#x000A;139: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">toggle</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Symbol</span>&#x000A;140: <span class="ruby-ivar">@@debug</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">toggle</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:on</span>&#x000A;141: <span class="ruby-ivar">@@debug</span> = <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">toggle</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:off</span>&#x000A;142: <span class="ruby-keyword kw">else</span>&#x000A;143: <span class="ruby-ivar">@@debug</span> = (<span class="ruby-operator">!</span><span class="ruby-ivar">@@debug</span>)&#x000A;144: <span class="ruby-keyword kw">end</span>&#x000A;145: <span class="ruby-keyword kw">end</span></pre>
236
- </div>
237
- </div>
238
- <div class='public-instance method' id='method-M000002'>
239
- <a name='M000002'> </a>
240
- <div class='synopsis'>
241
- <span class='name'>debug?</span>
242
- <span class='arguments'>()</span>
243
- </div>
244
- <div class='description'>
245
- <p>
246
- Returns true if debug output is enabled.
247
- </p>
248
- </div>
249
- <div class='source'>
250
- <a class='source-toggle' href='#' onclick="toggleCode('M000002-source'); return false">
251
- [show source]
252
- </a>
253
- <pre id='M000002-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 147</span>&#x000A;147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">debug?</span>&#x000A;148: <span class="ruby-ivar">@@debug</span>&#x000A;149: <span class="ruby-keyword kw">end</span></pre>
254
- </div>
255
- </div>
256
- <div class='public-instance method' id='method-M000003'>
257
- <a name='M000003'> </a>
258
- <div class='synopsis'>
259
- <span class='name'>default</span>
260
- <span class='arguments'>(cmd)</span>
261
- </div>
262
- <div class='description'>
263
- <p>
264
- Define a default command.
265
- </p>
266
- <pre>default :task</pre>
267
- </div>
268
- <div class='source'>
269
- <a class='source-toggle' href='#' onclick="toggleCode('M000003-source'); return false">
270
- [show source]
271
- </a>
272
- <pre id='M000003-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 155</span>&#x000A;155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">default</span>(<span class="ruby-identifier">cmd</span>)&#x000A;156: <span class="ruby-ivar">@@default_command</span> = <span class="ruby-identifier">canonize</span>(<span class="ruby-identifier">cmd</span>)&#x000A;157: <span class="ruby-keyword kw">end</span></pre>
273
- </div>
274
- </div>
275
- <div class='public-instance method' id='method-M000009'>
276
- <a name='M000009'> </a>
277
- <div class='synopsis'>
278
- <span class='name'>get_current_option_parser</span>
279
- <span class='arguments'>()</span>
280
- </div>
281
- <div class='description'>
282
- <p>
283
- Grab the options parser for the current command or create it if it
284
- doesn&#8217;t exist.
285
- </p>
286
- </div>
287
- <div class='source'>
288
- <a class='source-toggle' href='#' onclick="toggleCode('M000009-source'); return false">
289
- [show source]
290
- </a>
291
- <pre id='M000009-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 195</span>&#x000A;195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_current_option_parser</span>&#x000A;196: <span class="ruby-ivar">@@command_opts_parser</span> <span class="ruby-operator">||=</span> []&#x000A;197: <span class="ruby-ivar">@@command_index</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>&#x000A;198: (<span class="ruby-ivar">@@command_opts_parser</span>[<span class="ruby-ivar">@@command_index</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>)&#x000A;199: <span class="ruby-keyword kw">end</span></pre>
292
- </div>
293
- </div>
294
- <div class='public-instance method' id='method-M000011'>
295
- <a name='M000011'> </a>
296
- <div class='synopsis'>
297
- <span class='name'>global_option</span>
298
- <span class='arguments'>(*args, &amp;b)</span>
299
- </div>
300
- <div class='description'>
301
- <p>
302
- Define a global option. See <tt>option</tt> for more info.
303
- </p>
304
- </div>
305
- <div class='source'>
306
- <a class='source-toggle' href='#' onclick="toggleCode('M000011-source'); return false">
307
- [show source]
308
- </a>
309
- <pre id='M000011-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 214</span>&#x000A;214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">global_option</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;215: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-identifier">global_opts_parser</span>)&#x000A;216: <span class="ruby-identifier">global_option_names</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">option_parser</span>(<span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;217: <span class="ruby-keyword kw">end</span></pre>
310
- </div>
311
- </div>
312
- <div class='public-instance method' id='method-M000007'>
313
- <a name='M000007'> </a>
314
- <div class='synopsis'>
315
- <span class='name'>global_usage</span>
316
- <span class='arguments'>(msg)</span>
317
- </div>
318
- <div class='description'>
319
- <p>
320
- Define the default global usage banner. This is displayed with
321
- &#8220;script -h&#8221;.
322
- </p>
323
- </div>
324
- <div class='source'>
325
- <a class='source-toggle' href='#' onclick="toggleCode('M000007-source'); return false">
326
- [show source]
327
- </a>
328
- <pre id='M000007-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 183</span>&#x000A;183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">global_usage</span>(<span class="ruby-identifier">msg</span>)&#x000A;184: <span class="ruby-ivar">@@global_options</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">OpenStruct</span>.<span class="ruby-identifier">new</span>&#x000A;185: <span class="ruby-identifier">global_opts_parser</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;USAGE: #{msg}&quot;</span>&#x000A;186: <span class="ruby-keyword kw">end</span></pre>
329
- </div>
330
- </div>
331
- <div class='public-instance method' id='method-M000019'>
332
- <a name='M000019'> </a>
333
- <div class='synopsis'>
334
- <span class='name'>has_run?</span>
335
- <span class='arguments'>()</span>
336
- </div>
337
- <div class='description'>
338
- <p>
339
- Return true if a command has been executed.
340
- </p>
341
- </div>
342
- <div class='source'>
343
- <a class='source-toggle' href='#' onclick="toggleCode('M000019-source'); return false">
344
- [show source]
345
- </a>
346
- <pre id='M000019-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 310</span>&#x000A;310: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_run?</span>&#x000A;311: <span class="ruby-ivar">@@has_run</span>&#x000A;312: <span class="ruby-keyword kw">end</span></pre>
347
- </div>
348
- </div>
349
- <div class='public-instance method' id='method-M000010'>
350
- <a name='M000010'> </a>
351
- <div class='synopsis'>
352
- <span class='name'>ignore</span>
353
- <span class='arguments'>(what=:nothing)</span>
354
- </div>
355
- <div class='description'>
356
- <p>
357
- Tell the <a href="Drydock.html">Drydock</a> parser to ignore something. <a
358
- href="Drydock.html">Drydock</a> will currently only listen to you if you
359
- tell it to &#8220;ignore :options&#8221;, otherwise it will ignore you!
360
- </p>
361
- <p>
362
- <tt>what</tt> the thing to ignore. When it equals :options <a
363
- href="Drydock.html">Drydock</a> will not parse the command-specific
364
- arguments. It will pass the <a href="Drydock/Command.html">Command</a>
365
- object the list of arguments. This is useful when you want to parse the
366
- arguments in some a way that&#8217;s too crazy, dangerous for <a
367
- href="Drydock.html">Drydock</a> to handle automatically.
368
- </p>
369
- </div>
370
- <div class='source'>
371
- <a class='source-toggle' href='#' onclick="toggleCode('M000010-source'); return false">
372
- [show source]
373
- </a>
374
- <pre id='M000010-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 209</span>&#x000A;209: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ignore</span>(<span class="ruby-identifier">what</span>=<span class="ruby-identifier">:nothing</span>)&#x000A;210: <span class="ruby-ivar">@@command_opts_parser</span>[<span class="ruby-ivar">@@command_index</span>] = <span class="ruby-identifier">:ignore</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">what</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:options</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">what</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:all</span>&#x000A;211: <span class="ruby-keyword kw">end</span></pre>
375
- </div>
376
- </div>
377
- <div class='public-instance method' id='method-M000012'>
378
- <a name='M000012'> </a>
379
- <div class='synopsis'>
380
- <span class='name'>option</span>
381
- <span class='arguments'>(*args, &amp;b)</span>
382
- </div>
383
- <div class='description'>
384
- <p>
385
- Define a command-specific option.
386
- </p>
387
- <p>
388
- <tt>args</tt> is passed directly to OptionParser.on so it can contain
389
- anything that&#8217;s valid to that method. Some examples: [:h, :help,
390
- &#8220;Displays this message&#8221;] [:m, :max, Integer, &#8220;Maximum
391
- threshold&#8221;] [&#8217;-l x,y,z&#8217;, &#8217;&#8212;lang=x,y,z&#8217;,
392
- Array, &#8220;Requested languages&#8221;] If a class is included, it will
393
- tell OptionParser to expect a value otherwise it assumes a boolean value.
394
- </p>
395
- <p>
396
- All calls to <tt>option</tt> must come before the command they&#8217;re
397
- associated to. Example:
398
- </p>
399
- <pre>option :l, :longname, String, &quot;Description&quot; do; ...; end&#x000A;command :task do |obj|; ...; end</pre>
400
- <p>
401
- When calling your script with a specific command-line option, the value is
402
- available via obj.longname inside the command block.
403
- </p>
404
- </div>
405
- <div class='source'>
406
- <a class='source-toggle' href='#' onclick="toggleCode('M000012-source'); return false">
407
- [show source]
408
- </a>
409
- <pre id='M000012-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 238</span>&#x000A;238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">option</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;239: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-identifier">get_current_option_parser</span>)&#x000A;240: <span class="ruby-identifier">current_command_option_names</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">option_parser</span>(<span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;241: <span class="ruby-keyword kw">end</span></pre>
410
- </div>
411
- </div>
412
- <div class='public-instance method' id='method-M000020'>
413
- <a name='M000020'> </a>
414
- <div class='synopsis'>
415
- <span class='name'>run!</span>
416
- <span class='arguments'>(argv=[], stdin=STDIN)</span>
417
- </div>
418
- <div class='description'>
419
- <p>
420
- Execute the given command. By default, <a href="Drydock.html">Drydock</a>
421
- automatically executes itself and provides handlers for known errors. You
422
- can override this functionality by calling <tt><a
423
- href="Drydock.html#M000020">Drydock.run!</a></tt> yourself. <a
424
- href="Drydock.html">Drydock</a> will only call <tt>run!</tt> once.
425
- </p>
426
- </div>
427
- <div class='source'>
428
- <a class='source-toggle' href='#' onclick="toggleCode('M000020-source'); return false">
429
- [show source]
430
- </a>
431
- <pre id='M000020-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 318</span>&#x000A;318: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run!</span>(<span class="ruby-identifier">argv</span>=[], <span class="ruby-identifier">stdin</span>=<span class="ruby-constant">STDIN</span>)&#x000A;319: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_run?</span>&#x000A;320: <span class="ruby-ivar">@@has_run</span> = <span class="ruby-keyword kw">true</span>&#x000A;321: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NoCommandsDefined</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">commands</span>.<span class="ruby-identifier">empty?</span>&#x000A;322: <span class="ruby-ivar">@@global_options</span>, <span class="ruby-identifier">cmd_name</span>, <span class="ruby-ivar">@@command_options</span>, <span class="ruby-identifier">argv</span> = <span class="ruby-identifier">process_arguments</span>(<span class="ruby-identifier">argv</span>)&#x000A;323: &#x000A;324: <span class="ruby-identifier">cmd_name</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">default_command</span>&#x000A;325: &#x000A;326: <span class="ruby-identifier">raise</span> <span class="ruby-constant">UnknownCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cmd_name</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">command?</span>(<span class="ruby-identifier">cmd_name</span>)&#x000A;327: &#x000A;328: <span class="ruby-identifier">stdin</span> = (<span class="ruby-keyword kw">defined?</span> <span class="ruby-ivar">@@stdin_block</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@@stdin_block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">stdin</span>, []) <span class="ruby-operator">:</span> <span class="ruby-identifier">stdin</span>&#x000A;329: <span class="ruby-ivar">@@before_block</span>.<span class="ruby-identifier">call</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-ivar">@@before_block</span>&#x000A;330: &#x000A;331: <span class="ruby-identifier">call_command</span>(<span class="ruby-identifier">cmd_name</span>, <span class="ruby-identifier">argv</span>, <span class="ruby-identifier">stdin</span>)&#x000A;332: &#x000A;333: <span class="ruby-ivar">@@after_block</span>.<span class="ruby-identifier">call</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-ivar">@@after_block</span>&#x000A;334: &#x000A;335: <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>&#x000A;336: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Drydock</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidArgument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ex</span>.<span class="ruby-identifier">args</span>)&#x000A;337: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">MissingArgument</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>&#x000A;338: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Drydock</span><span class="ruby-operator">::</span><span class="ruby-constant">MissingArgument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ex</span>.<span class="ruby-identifier">args</span>)&#x000A;339: <span class="ruby-keyword kw">end</span></pre>
432
- </div>
433
- </div>
434
- <div class='public-instance method' id='method-M000018'>
435
- <a name='M000018'> </a>
436
- <div class='synopsis'>
437
- <span class='name'>run=</span>
438
- <span class='arguments'>(v)</span>
439
- </div>
440
- <div class='description'>
441
- <p>
442
- Disable automatic execution (enabled by default)
443
- </p>
444
- <pre>Drydock.run = false</pre>
445
- </div>
446
- <div class='source'>
447
- <a class='source-toggle' href='#' onclick="toggleCode('M000018-source'); return false">
448
- [show source]
449
- </a>
450
- <pre id='M000018-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 305</span>&#x000A;305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run=</span>(<span class="ruby-identifier">v</span>)&#x000A;306: <span class="ruby-ivar">@@run</span> = (<span class="ruby-identifier">v</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span> &#x000A;307: <span class="ruby-keyword kw">end</span></pre>
451
- </div>
452
- </div>
453
- <div class='public-instance method' id='method-M000017'>
454
- <a name='M000017'> </a>
455
- <div class='synopsis'>
456
- <span class='name'>run?</span>
457
- <span class='arguments'>()</span>
458
- </div>
459
- <div class='description'>
460
- <p>
461
- Returns true if automatic execution is enabled.
462
- </p>
463
- </div>
464
- <div class='source'>
465
- <a class='source-toggle' href='#' onclick="toggleCode('M000017-source'); return false">
466
- [show source]
467
- </a>
468
- <pre id='M000017-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 298</span>&#x000A;298: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run?</span>&#x000A;299: <span class="ruby-ivar">@@run</span>&#x000A;300: <span class="ruby-keyword kw">end</span></pre>
469
- </div>
470
- </div>
471
- <div class='public-instance method' id='method-M000004'>
472
- <a name='M000004'> </a>
473
- <div class='synopsis'>
474
- <span class='name'>stdin</span>
475
- <span class='arguments'>(&amp;b)</span>
476
- </div>
477
- <div class='description'>
478
- <p>
479
- Define a block for processing STDIN before the command is called. The
480
- command block receives the return value of this block in a named argument:
481
- </p>
482
- <pre>command :task do |obj, argv, stdin|; ...; end</pre>
483
- <p>
484
- If a stdin block isn&#8217;t defined, <tt>stdin</tt> above will be the
485
- STDIN IO handle.
486
- </p>
487
- </div>
488
- <div class='source'>
489
- <a class='source-toggle' href='#' onclick="toggleCode('M000004-source'); return false">
490
- [show source]
491
- </a>
492
- <pre id='M000004-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 165</span>&#x000A;165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdin</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)&#x000A;166: <span class="ruby-ivar">@@stdin_block</span> = <span class="ruby-identifier">b</span>&#x000A;167: <span class="ruby-keyword kw">end</span></pre>
493
- </div>
494
- </div>
495
- <div class='public-instance method' id='method-M000008'>
496
- <a name='M000008'> </a>
497
- <div class='synopsis'>
498
- <span class='name'>usage</span>
499
- <span class='arguments'>(msg)</span>
500
- </div>
501
- <div class='description'>
502
- <p>
503
- Define a command-specific usage banner. This is displayed with
504
- &#8220;script command -h&#8220;
505
- </p>
506
- </div>
507
- <div class='source'>
508
- <a class='source-toggle' href='#' onclick="toggleCode('M000008-source'); return false">
509
- [show source]
510
- </a>
511
- <pre id='M000008-source'> <span class="ruby-comment cmt"># File lib/drydock.rb, line 190</span>&#x000A;190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">usage</span>(<span class="ruby-identifier">msg</span>)&#x000A;191: <span class="ruby-identifier">get_current_option_parser</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;USAGE: #{msg}&quot;</span>&#x000A;192: <span class="ruby-keyword kw">end</span></pre>
512
- </div>
513
- </div>
514
- </div>
515
- </div>
516
- </div>
517
- </div>
518
- <div id='footer-push'></div>
519
- </div>
520
- <div id='footer'>
521
- <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
522
- <script type='text/javascript'>
523
- //<![CDATA[
524
- var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
525
- document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/scr
526
-
527
- try {
528
- var pageTracker = _gat._getTracker("UA-4642735-10");
529
- pageTracker._trackPageview();
530
- } catch(err) {}
531
- //]]>
532
- </script>
533
- </div>
534
- </body>
535
- </html>