drydock 0.3.3 → 0.4.0

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.
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>