optparse 0.3.1 → 0.5.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.
- checksums.yaml +4 -4
- data/.document +7 -0
- data/.rdoc_options +4 -0
- data/ChangeLog +266 -16
- data/doc/optparse/.document +1 -0
- data/doc/optparse/argument_converters.rdoc +35 -35
- data/doc/optparse/option_params.rdoc +3 -3
- data/doc/optparse/ruby/argument_abbreviation.rb +9 -0
- data/doc/optparse/tutorial.rdoc +58 -35
- data/lib/optparse/ac.rb +16 -0
- data/lib/optparse/kwargs.rb +8 -3
- data/lib/optparse/version.rb +9 -0
- data/lib/optparse.rb +166 -63
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5a9ef5004e5838005ad874fc163ebd1e6266d3319d08be502a8fb2d6b6b48a2
|
4
|
+
data.tar.gz: 94fb689cea59f667e4bc4788a6713a50cd829b4e552097994e7b9833f5f35432
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d0d3a7e51d10a3636e337dfdbe6562ae32e5e4ee18ef61926460f964900f5341f75ae3dd308901e2c1bdf8d5e1c1bd4434d8fe1e2fc77b366bf68690fa9ec85
|
7
|
+
data.tar.gz: e494246dfe20878a07d79d3489918b9383a2ade4076023a4fd1ec5f973c2f8111066b85fa8e49b69303ff8ff7301adc4ad5c7d3cccde5650ef93afa9b7819030
|
data/.document
ADDED
data/.rdoc_options
ADDED
data/ChangeLog
CHANGED
@@ -1,25 +1,275 @@
|
|
1
1
|
-*- coding: utf-8 -*-
|
2
2
|
|
3
|
-
commit
|
4
|
-
Author:
|
5
|
-
AuthorDate:
|
6
|
-
Commit:
|
7
|
-
CommitDate:
|
3
|
+
commit 979bd76281d28044b3def3eadba233a87e62415a
|
4
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
5
|
+
AuthorDate: 2024-04-15 18:42:47 +0900
|
6
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
7
|
+
CommitDate: 2024-04-15 18:42:47 +0900
|
8
|
+
|
9
|
+
[DOC] Split fetching commits and building package
|
10
|
+
|
11
|
+
commit ca883bd3a1ac13957774fcb93e8bccd80b74c9d1
|
12
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
13
|
+
AuthorDate: 2024-04-15 18:21:31 +0900
|
14
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
15
|
+
CommitDate: 2024-04-15 18:21:31 +0900
|
16
|
+
|
17
|
+
[DOC] git on Github Actions is old
|
18
|
+
|
19
|
+
It does not support `--unshallow-exclude` option.
|
20
|
+
|
21
|
+
commit 7f79bc820ff0e04a05204ec63c5fc3e9c85e14ad
|
22
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
23
|
+
AuthorDate: 2024-04-15 18:08:57 +0900
|
24
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
25
|
+
CommitDate: 2024-04-15 18:08:57 +0900
|
26
|
+
|
27
|
+
[DOC] Fix error when no tag found
|
28
|
+
|
29
|
+
commit add085df63d79d878a8901c42f2cfc3eec56307f
|
30
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
31
|
+
AuthorDate: 2024-04-15 15:57:09 +0900
|
32
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
33
|
+
CommitDate: 2024-04-15 15:58:54 +0900
|
34
|
+
|
35
|
+
Fetch upto the previous tag for changelogs
|
36
|
+
|
37
|
+
commit 436a5c516b67f8aec900f2361567c6fc163ade05
|
38
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
39
|
+
AuthorDate: 2024-04-15 15:08:19 +0900
|
40
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
41
|
+
CommitDate: 2024-04-15 15:08:19 +0900
|
42
|
+
|
43
|
+
[DOC] Make timestamps in a ISO 8601-like format
|
44
|
+
|
45
|
+
commit 3a2dcd72d1fdabf63218cd13c8c7953cb3c28f6b
|
46
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
47
|
+
AuthorDate: 2024-04-15 14:55:14 +0900
|
48
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
49
|
+
CommitDate: 2024-04-15 14:55:14 +0900
|
50
|
+
|
51
|
+
[DOC] Make ChangeLog non-empty
|
52
|
+
|
53
|
+
When the latest version is tagged at the head, there is no commit
|
54
|
+
between the tag and the head. Make from the previous tag.
|
55
|
+
|
56
|
+
commit b7382c02f1092f2c0ef0f4096d3b8428e2adf3fa
|
57
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
58
|
+
AuthorDate: 2024-04-15 14:49:59 +0900
|
59
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
60
|
+
CommitDate: 2024-04-15 14:49:59 +0900
|
61
|
+
|
62
|
+
[DOC] Exclude CI-skipped commits from changelogs
|
8
63
|
|
9
|
-
|
64
|
+
commit b49cb996afdd68e4eb373ba602c95b52c963d160
|
65
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
66
|
+
AuthorDate: 2024-04-15 14:24:19 +0900
|
67
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
68
|
+
CommitDate: 2024-04-15 14:24:19 +0900
|
69
|
+
|
70
|
+
[DOC] Package files for RDoc
|
10
71
|
|
11
|
-
commit
|
72
|
+
commit f5018a8b1ce82f7ac7458d00d099a454c3c03ea1
|
12
73
|
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
13
|
-
AuthorDate:
|
14
|
-
Commit:
|
15
|
-
CommitDate:
|
74
|
+
AuthorDate: 2024-04-15 14:05:43 +0900
|
75
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
76
|
+
CommitDate: 2024-04-15 14:05:43 +0900
|
77
|
+
|
78
|
+
bump up to 0.5.0
|
79
|
+
|
80
|
+
commit ece4bb2673c7fa9f53133ba91bbffd423ebadc90
|
81
|
+
Author: Koichi Sasada <ko1@atdot.net>
|
82
|
+
AuthorDate: 2024-03-27 07:29:38 +0900
|
83
|
+
Commit: Koichi Sasada <ko1@atdot.net>
|
84
|
+
CommitDate: 2024-04-15 12:08:07 +0900
|
85
|
+
|
86
|
+
show warning for unused block
|
87
|
+
|
88
|
+
With verbopse mode (-w), the interpreter shows a warning if
|
89
|
+
a block is passed to a method which does not use the given block.
|
16
90
|
|
17
|
-
|
91
|
+
Warning on:
|
18
92
|
|
19
|
-
|
20
|
-
|
21
|
-
|
93
|
+
* the invoked method is not written in C
|
94
|
+
* the invoked method is not `initialize`
|
95
|
+
* not invoked with `super`
|
96
|
+
* the first time on the call-site with the invoked method
|
97
|
+
(`obj.foo{}` will be warned once if `foo` is same method)
|
98
|
+
|
99
|
+
[Feature #15554]
|
100
|
+
|
101
|
+
`Primitive.attr! :use_block` is introduced to declare that primitive
|
102
|
+
functions (written in C) will use passed block.
|
103
|
+
|
104
|
+
For minitest, test needs some tweak, so use
|
105
|
+
https://github.com/minitest/minitest/commit/ea9caafc0754b1d6236a490d59e624b53209734a
|
106
|
+
for `test-bundled-gems`.
|
107
|
+
|
108
|
+
ruby/ruby@9180e33ca3a5886fec3f9e0a2f48072b55914e65
|
109
|
+
|
110
|
+
commit 77dccce37cb9fd1b8fbc52160d4103d1c4579669
|
111
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
112
|
+
AuthorDate: 2024-03-01 01:24:05 +0900
|
113
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
114
|
+
CommitDate: 2024-03-01 01:24:05 +0900
|
115
|
+
|
116
|
+
Invoke pager for `--help`
|
117
|
+
|
118
|
+
commit 59b9fd7ddca3e795c235aa397655b51de2e4c949
|
119
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
120
|
+
AuthorDate: 2024-02-23 21:49:57 +0900
|
121
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
122
|
+
CommitDate: 2024-02-23 21:49:57 +0900
|
123
|
+
|
124
|
+
[DOC] About return value of OptionParser#new
|
125
|
+
|
126
|
+
commit 07e83673a8e99b5b7985608a69f713abde3344f6
|
127
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
128
|
+
AuthorDate: 2024-02-21 13:42:11 +0900
|
129
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
130
|
+
CommitDate: 2024-02-23 21:13:51 +0900
|
131
|
+
|
132
|
+
Add `exact:` keyword argument
|
133
|
+
|
134
|
+
commit bbec64d0c7f198429b62468b64b27692efa18dc2
|
135
|
+
Author: Yusuke Endoh <mame@ruby-lang.org>
|
136
|
+
AuthorDate: 2024-01-19 16:03:38 +0900
|
22
137
|
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
23
|
-
CommitDate:
|
138
|
+
CommitDate: 2024-02-16 10:47:36 +0900
|
139
|
+
|
140
|
+
Do not include a backtick in error messages and backtraces
|
141
|
+
|
142
|
+
[Feature #16495]
|
143
|
+
|
144
|
+
commit 451dea51a0e5d062fb4cb75b1073a2c2b8609bef
|
145
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
146
|
+
AuthorDate: 2024-02-12 01:30:58 +0900
|
147
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
148
|
+
CommitDate: 2024-02-12 01:30:58 +0900
|
149
|
+
|
150
|
+
[DOC] Add description of OptionParser#define_by_keywords
|
151
|
+
|
152
|
+
commit 33956ce93f56320978cedfcebb8b6cf18bf96c53
|
153
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
154
|
+
AuthorDate: 2024-02-12 01:07:05 +0900
|
155
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
156
|
+
CommitDate: 2024-02-12 01:07:05 +0900
|
157
|
+
|
158
|
+
[DOC] Add missing documents
|
159
|
+
|
160
|
+
commit 78afdab30751e1b7cf80bb57d6696b10879f90fe
|
161
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
162
|
+
AuthorDate: 2024-02-10 22:56:32 +0900
|
163
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
164
|
+
CommitDate: 2024-02-10 22:56:32 +0900
|
165
|
+
|
166
|
+
Search exactly when `require_exact`
|
167
|
+
|
168
|
+
To work with options defined as `--[no]-something`.
|
169
|
+
|
170
|
+
Fix https://bugs.ruby-lang.org/issues/20252
|
171
|
+
Fix #60
|
172
|
+
|
173
|
+
commit 213cb03b5978ddacfbcc8f71ec837d9a6fd4c56d
|
174
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
175
|
+
AuthorDate: 2024-02-09 19:03:20 +0900
|
176
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
177
|
+
CommitDate: 2024-02-09 19:03:20 +0900
|
178
|
+
|
179
|
+
Adjust arguments for lambda-callbacks
|
180
|
+
|
181
|
+
Rake uses [lambda] as callbacks.
|
182
|
+
Calling it without omitted argument raises an `ArgumentError`.
|
183
|
+
|
184
|
+
lambda: https://github.com/ruby/rake/blob/master/lib/rake/application.rb#L543
|
185
|
+
|
186
|
+
commit 9d53e74aa4421e0c4e2a805a0074ece5aae3773f
|
187
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
188
|
+
AuthorDate: 2024-02-09 12:59:43 +0900
|
189
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
190
|
+
CommitDate: 2024-02-09 12:59:43 +0900
|
191
|
+
|
192
|
+
Respect default values in block parameters
|
193
|
+
|
194
|
+
Fix #55
|
195
|
+
|
196
|
+
commit 4e346ad337f400dbff855798e859f17455698c2a
|
197
|
+
Author: fatkodima <fatkodima123@gmail.com>
|
198
|
+
AuthorDate: 2023-10-14 21:52:01 +0300
|
199
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
200
|
+
CommitDate: 2024-02-09 12:31:08 +0900
|
201
|
+
|
202
|
+
Fix `require_exact` to work with options defined as `--[no]-something`
|
203
|
+
|
204
|
+
commit b14c2c644d18cce226e49ccde8a23b5b991ea8cf
|
205
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
206
|
+
AuthorDate: 2024-02-09 12:17:31 +0900
|
207
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
208
|
+
CommitDate: 2024-02-09 12:17:31 +0900
|
209
|
+
|
210
|
+
Escape backslashes
|
211
|
+
|
212
|
+
commit 434e92fc62ff9571124335a2eedff56df83dae48
|
213
|
+
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
214
|
+
AuthorDate: 2023-12-18 03:43:27 +0000
|
215
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
216
|
+
CommitDate: 2024-02-09 12:14:30 +0900
|
217
|
+
|
218
|
+
Bump actions/upload-artifact from 3 to 4
|
219
|
+
|
220
|
+
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
|
221
|
+
- [Release notes](https://github.com/actions/upload-artifact/releases)
|
222
|
+
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)
|
223
|
+
|
224
|
+
---
|
225
|
+
updated-dependencies:
|
226
|
+
- dependency-name: actions/upload-artifact
|
227
|
+
dependency-type: direct:production
|
228
|
+
update-type: version-update:semver-major
|
229
|
+
...
|
230
|
+
|
231
|
+
Signed-off-by: dependabot[bot] <support@github.com>
|
232
|
+
|
233
|
+
commit 48385d3eaf37cd10140274453eeadc4496581fc2
|
234
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
235
|
+
AuthorDate: 2024-02-09 12:01:44 +0900
|
236
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
237
|
+
CommitDate: 2024-02-09 12:06:40 +0900
|
238
|
+
|
239
|
+
Create codeql.yml
|
240
|
+
|
241
|
+
commit 294c6e1ed4b170a8a34ab95c84453829c170223c
|
242
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
243
|
+
AuthorDate: 2023-12-25 15:08:05 +0900
|
244
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
245
|
+
CommitDate: 2023-12-25 15:08:05 +0900
|
246
|
+
|
247
|
+
Build packages only on the latest release
|
248
|
+
|
249
|
+
commit 324ff21f042769444cde41949fc0321f6c6ccf63
|
250
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
251
|
+
AuthorDate: 2023-12-18 12:45:44 +0900
|
252
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
253
|
+
CommitDate: 2023-12-18 12:45:44 +0900
|
254
|
+
|
255
|
+
[DOC] Add missing documents
|
256
|
+
|
257
|
+
commit 667ab35f593f81b7850009385453d20ca8023bba
|
258
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
259
|
+
AuthorDate: 2023-12-18 12:24:46 +0900
|
260
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
261
|
+
CommitDate: 2023-12-18 12:24:46 +0900
|
262
|
+
|
263
|
+
[DOC] Add missing secition
|
264
|
+
|
265
|
+
Fixes #51
|
266
|
+
|
267
|
+
commit 1c895efc39ed2290c185dcb80523fee381dfe74e
|
268
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
269
|
+
AuthorDate: 2023-12-18 12:15:31 +0900
|
270
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
271
|
+
CommitDate: 2023-12-18 12:15:31 +0900
|
272
|
+
|
273
|
+
[DOC] Fix tutorial link
|
24
274
|
|
25
|
-
|
275
|
+
Fixes #51
|
@@ -0,0 +1 @@
|
|
1
|
+
*.rdoc
|
@@ -1,7 +1,7 @@
|
|
1
1
|
== Argument Converters
|
2
2
|
|
3
3
|
An option can specify that its argument is to be converted
|
4
|
-
from the default
|
4
|
+
from the default +String+ to an instance of another class.
|
5
5
|
|
6
6
|
=== Contents
|
7
7
|
|
@@ -27,13 +27,13 @@ from the default \String to an instance of another class.
|
|
27
27
|
|
28
28
|
=== Built-In Argument Converters
|
29
29
|
|
30
|
-
|
30
|
+
+OptionParser+ has a number of built-in argument converters,
|
31
31
|
which are demonstrated below.
|
32
32
|
|
33
|
-
====
|
33
|
+
==== +Date+
|
34
34
|
|
35
35
|
File +date.rb+
|
36
|
-
defines an option whose argument is to be converted to a
|
36
|
+
defines an option whose argument is to be converted to a +Date+ object.
|
37
37
|
The argument is converted by method Date#parse.
|
38
38
|
|
39
39
|
:include: ruby/date.rb
|
@@ -47,10 +47,10 @@ Executions:
|
|
47
47
|
$ ruby date.rb --date "3rd Feb 2001"
|
48
48
|
[#<Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)>, Date]
|
49
49
|
|
50
|
-
====
|
50
|
+
==== +DateTime+
|
51
51
|
|
52
52
|
File +datetime.rb+
|
53
|
-
defines an option whose argument is to be converted to a
|
53
|
+
defines an option whose argument is to be converted to a +DateTime+ object.
|
54
54
|
The argument is converted by method DateTime#parse.
|
55
55
|
|
56
56
|
:include: ruby/datetime.rb
|
@@ -64,10 +64,10 @@ Executions:
|
|
64
64
|
$ ruby datetime.rb --datetime "3rd Feb 2001 04:05:06 PM"
|
65
65
|
[#<DateTime: 2001-02-03T16:05:06+00:00 ((2451944j,57906s,0n),+0s,2299161j)>, DateTime]
|
66
66
|
|
67
|
-
====
|
67
|
+
==== +Time+
|
68
68
|
|
69
69
|
File +time.rb+
|
70
|
-
defines an option whose argument is to be converted to a
|
70
|
+
defines an option whose argument is to be converted to a +Time+ object.
|
71
71
|
The argument is converted by method Time#httpdate or Time#parse.
|
72
72
|
|
73
73
|
:include: ruby/time.rb
|
@@ -79,10 +79,10 @@ Executions:
|
|
79
79
|
$ ruby time.rb --time 2010-10-31
|
80
80
|
[2010-10-31 00:00:00 -0500, Time]
|
81
81
|
|
82
|
-
====
|
82
|
+
==== +URI+
|
83
83
|
|
84
84
|
File +uri.rb+
|
85
|
-
defines an option whose argument is to be converted to a
|
85
|
+
defines an option whose argument is to be converted to a +URI+ object.
|
86
86
|
The argument is converted by method URI#parse.
|
87
87
|
|
88
88
|
:include: ruby/uri.rb
|
@@ -96,10 +96,10 @@ Executions:
|
|
96
96
|
$ ruby uri.rb --uri file://~/var
|
97
97
|
[#<URI::File file://~/var>, URI::File]
|
98
98
|
|
99
|
-
====
|
99
|
+
==== +Shellwords+
|
100
100
|
|
101
101
|
File +shellwords.rb+
|
102
|
-
defines an option whose argument is to be converted to an
|
102
|
+
defines an option whose argument is to be converted to an +Array+ object by method
|
103
103
|
Shellwords#shellwords.
|
104
104
|
|
105
105
|
:include: ruby/shellwords.rb
|
@@ -111,10 +111,10 @@ Executions:
|
|
111
111
|
$ ruby shellwords.rb --shellwords "here are 'two words'"
|
112
112
|
[["here", "are", "two words"], Array]
|
113
113
|
|
114
|
-
====
|
114
|
+
==== +Integer+
|
115
115
|
|
116
116
|
File +integer.rb+
|
117
|
-
defines an option whose argument is to be converted to an
|
117
|
+
defines an option whose argument is to be converted to an +Integer+ object.
|
118
118
|
The argument is converted by method Kernel#Integer.
|
119
119
|
|
120
120
|
:include: ruby/integer.rb
|
@@ -132,10 +132,10 @@ Executions:
|
|
132
132
|
$ ruby integer.rb --integer 0b100
|
133
133
|
[4, Integer]
|
134
134
|
|
135
|
-
====
|
135
|
+
==== +Float+
|
136
136
|
|
137
137
|
File +float.rb+
|
138
|
-
defines an option whose argument is to be converted to a
|
138
|
+
defines an option whose argument is to be converted to a +Float+ object.
|
139
139
|
The argument is converted by method Kernel#Float.
|
140
140
|
|
141
141
|
:include: ruby/float.rb
|
@@ -151,11 +151,11 @@ Executions:
|
|
151
151
|
$ ruby float.rb --float 1.234E-2
|
152
152
|
[0.01234, Float]
|
153
153
|
|
154
|
-
====
|
154
|
+
==== +Numeric+
|
155
155
|
|
156
156
|
File +numeric.rb+
|
157
157
|
defines an option whose argument is to be converted to an instance
|
158
|
-
of
|
158
|
+
of +Rational+, +Float+, or +Integer+.
|
159
159
|
The argument is converted by method Kernel#Rational,
|
160
160
|
Kernel#Float, or Kernel#Integer.
|
161
161
|
|
@@ -170,10 +170,10 @@ Executions:
|
|
170
170
|
$ ruby numeric.rb --numeric 3
|
171
171
|
[3, Integer]
|
172
172
|
|
173
|
-
====
|
173
|
+
==== +DecimalInteger+
|
174
174
|
|
175
175
|
File +decimal_integer.rb+
|
176
|
-
defines an option whose argument is to be converted to an
|
176
|
+
defines an option whose argument is to be converted to an +Integer+ object.
|
177
177
|
The argument is converted by method Kernel#Integer.
|
178
178
|
|
179
179
|
:include: ruby/decimal_integer.rb
|
@@ -192,10 +192,10 @@ Executions:
|
|
192
192
|
$ ruby decimal_integer.rb --decimal_integer -0100
|
193
193
|
[-100, Integer]
|
194
194
|
|
195
|
-
====
|
195
|
+
==== +OctalInteger+
|
196
196
|
|
197
197
|
File +octal_integer.rb+
|
198
|
-
defines an option whose argument is to be converted to an
|
198
|
+
defines an option whose argument is to be converted to an +Integer+ object.
|
199
199
|
The argument is converted by method Kernel#Integer.
|
200
200
|
|
201
201
|
:include: ruby/octal_integer.rb
|
@@ -212,10 +212,10 @@ Executions:
|
|
212
212
|
$ ruby octal_integer.rb --octal_integer 0100
|
213
213
|
[64, Integer]
|
214
214
|
|
215
|
-
====
|
215
|
+
==== +DecimalNumeric+
|
216
216
|
|
217
217
|
File +decimal_numeric.rb+
|
218
|
-
defines an option whose argument is to be converted to an
|
218
|
+
defines an option whose argument is to be converted to an +Integer+ object.
|
219
219
|
The argument is converted by method Kernel#Integer
|
220
220
|
|
221
221
|
:include: ruby/decimal_numeric.rb
|
@@ -232,7 +232,7 @@ Executions:
|
|
232
232
|
$ ruby decimal_numeric.rb --decimal_numeric 0100
|
233
233
|
[64, Integer]
|
234
234
|
|
235
|
-
====
|
235
|
+
==== +TrueClass+
|
236
236
|
|
237
237
|
File +true_class.rb+
|
238
238
|
defines an option whose argument is to be converted to +true+ or +false+.
|
@@ -259,7 +259,7 @@ Executions:
|
|
259
259
|
$ ruby true_class.rb --true_class nil
|
260
260
|
[false, FalseClass]
|
261
261
|
|
262
|
-
====
|
262
|
+
==== +FalseClass+
|
263
263
|
|
264
264
|
File +false_class.rb+
|
265
265
|
defines an option whose argument is to be converted to +true+ or +false+.
|
@@ -286,10 +286,10 @@ Executions:
|
|
286
286
|
$ ruby false_class.rb --false_class +
|
287
287
|
[true, TrueClass]
|
288
288
|
|
289
|
-
====
|
289
|
+
==== +Object+
|
290
290
|
|
291
291
|
File +object.rb+
|
292
|
-
defines an option whose argument is not to be converted from
|
292
|
+
defines an option whose argument is not to be converted from +String+.
|
293
293
|
|
294
294
|
:include: ruby/object.rb
|
295
295
|
|
@@ -300,10 +300,10 @@ Executions:
|
|
300
300
|
$ ruby object.rb --object nil
|
301
301
|
["nil", String]
|
302
302
|
|
303
|
-
====
|
303
|
+
==== +String+
|
304
304
|
|
305
305
|
File +string.rb+
|
306
|
-
defines an option whose argument is not to be converted from
|
306
|
+
defines an option whose argument is not to be converted from +String+.
|
307
307
|
|
308
308
|
:include: ruby/string.rb
|
309
309
|
|
@@ -314,10 +314,10 @@ Executions:
|
|
314
314
|
$ ruby string.rb --string nil
|
315
315
|
["nil", String]
|
316
316
|
|
317
|
-
====
|
317
|
+
==== +Array+
|
318
318
|
|
319
319
|
File +array.rb+
|
320
|
-
defines an option whose argument is to be converted from
|
320
|
+
defines an option whose argument is to be converted from +String+
|
321
321
|
to an array of strings, based on comma-separated substrings.
|
322
322
|
|
323
323
|
:include: ruby/array.rb
|
@@ -331,10 +331,10 @@ Executions:
|
|
331
331
|
$ ruby array.rb --array "foo, bar, baz"
|
332
332
|
[["foo", " bar", " baz"], Array]
|
333
333
|
|
334
|
-
====
|
334
|
+
==== +Regexp+
|
335
335
|
|
336
336
|
File +regexp.rb+
|
337
|
-
defines an option whose argument is to be converted to a
|
337
|
+
defines an option whose argument is to be converted to a +Regexp+ object.
|
338
338
|
|
339
339
|
:include: ruby/regexp.rb
|
340
340
|
|
@@ -352,7 +352,7 @@ To create a custom converter, call OptionParser#accept with:
|
|
352
352
|
- A block that accepts the argument and returns the converted value.
|
353
353
|
|
354
354
|
This custom converter accepts any argument and converts it,
|
355
|
-
if possible, to a
|
355
|
+
if possible, to a +Complex+ object.
|
356
356
|
|
357
357
|
:include: ruby/custom_converter.rb
|
358
358
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
== Parameters for New Options
|
2
2
|
|
3
|
-
Option-creating methods in
|
3
|
+
Option-creating methods in +OptionParser+
|
4
4
|
accept arguments that determine the behavior of a new option:
|
5
5
|
|
6
6
|
- OptionParser#on
|
@@ -31,7 +31,7 @@ Contents:
|
|
31
31
|
- {Long Names with Optional Arguments}[#label-Long+Names+with+Optional+Arguments]
|
32
32
|
- {Long Names with Negation}[#label-Long+Names+with+Negation]
|
33
33
|
- {Mixed Names}[#label-Mixed+Names]
|
34
|
-
- {Argument
|
34
|
+
- {Argument Strings}[#label-Argument+Strings]
|
35
35
|
- {Argument Values}[#label-Argument+Values]
|
36
36
|
- {Explicit Argument Values}[#label-Explicit+Argument+Values]
|
37
37
|
- {Explicit Values in Array}[#label-Explicit+Values+in+Array]
|
@@ -405,7 +405,7 @@ Executions:
|
|
405
405
|
=== Argument Converters
|
406
406
|
|
407
407
|
An option can specify that its argument is to be converted
|
408
|
-
from the default
|
408
|
+
from the default +String+ to an instance of another class.
|
409
409
|
|
410
410
|
There are a number of built-in converters.
|
411
411
|
You can also define custom converters.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
parser = OptionParser.new
|
3
|
+
parser.on('-x', '--xxx=VALUE', %w[ABC def], 'Argument abbreviations') do |value|
|
4
|
+
p ['--xxx', value]
|
5
|
+
end
|
6
|
+
parser.on('-y', '--yyy=VALUE', {"abc"=>"XYZ", def: "FOO"}, 'Argument abbreviations') do |value|
|
7
|
+
p ['--yyy', value]
|
8
|
+
end
|
9
|
+
parser.parse!
|