optparse 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +152 -14
- data/doc/optparse/argument_converters.rdoc +35 -35
- data/doc/optparse/option_params.rdoc +2 -2
- data/doc/optparse/tutorial.rdoc +35 -35
- data/lib/optparse.rb +23 -14
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 393ddfd5f19439c98112418ff879314c8570d9955e4a26a148b6d3bd94354cda
|
4
|
+
data.tar.gz: 270b3538983dfd6920cae9b2fcda5d7dcb5304157ae1e323a0d56daf33a6dd60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80e82b866fccf4b8598d3b495941629255ddfa907a8686a092d9ab5135d145d1c0a83d9d3d42ededcf1d33e21bc5ea6bfbee79f40085140e29a4ac54e6b96a1d
|
7
|
+
data.tar.gz: 998881fc6568b9725d7874145111cdee53e2366050a63f0e5908395f183d080eda16bf6740e8d83f90fe60064cf85fb424c24cd70e4589b344ee9dc3b997d283
|
data/ChangeLog
CHANGED
@@ -1,25 +1,163 @@
|
|
1
1
|
-*- coding: utf-8 -*-
|
2
2
|
|
3
|
-
commit
|
3
|
+
commit acbf6e3e12de4d116f7215b64432f204d293da97
|
4
4
|
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
5
|
-
AuthorDate:
|
5
|
+
AuthorDate: 2023-11-07 10:40:38 +0900
|
6
6
|
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
7
|
-
CommitDate:
|
7
|
+
CommitDate: 2023-11-07 10:40:38 +0900
|
8
8
|
|
9
|
-
Bump
|
9
|
+
Bump up 0.4.0
|
10
10
|
|
11
|
-
commit
|
11
|
+
commit 38848ce4b31977d4a892c2a5573b304c77208283
|
12
|
+
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
13
|
+
AuthorDate: 2023-10-05 16:17:40 +0900
|
14
|
+
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
15
|
+
CommitDate: 2023-10-05 16:26:53 +0900
|
16
|
+
|
17
|
+
Use test-unit-ruby-core gem
|
18
|
+
|
19
|
+
commit a291ef5c26445d423bf0223b0cb64340df18f0cb
|
20
|
+
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
21
|
+
AuthorDate: 2023-09-11 03:20:53 +0000
|
22
|
+
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
23
|
+
CommitDate: 2023-09-11 14:02:17 +0900
|
24
|
+
|
25
|
+
Bump actions/checkout from 3 to 4
|
26
|
+
|
27
|
+
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
|
28
|
+
- [Release notes](https://github.com/actions/checkout/releases)
|
29
|
+
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
|
30
|
+
- [Commits](https://github.com/actions/checkout/compare/v3...v4)
|
31
|
+
|
32
|
+
---
|
33
|
+
updated-dependencies:
|
34
|
+
- dependency-name: actions/checkout
|
35
|
+
dependency-type: direct:production
|
36
|
+
update-type: version-update:semver-major
|
37
|
+
...
|
38
|
+
|
39
|
+
Signed-off-by: dependabot[bot] <support@github.com>
|
40
|
+
|
41
|
+
commit 2940dbb65a7df013995934a93e6906109adda766
|
42
|
+
Author: BurdetteLamar <burdettelamar@yahoo.com>
|
43
|
+
AuthorDate: 2023-07-30 16:35:00 +0100
|
44
|
+
Commit: BurdetteLamar <burdettelamar@yahoo.com>
|
45
|
+
CommitDate: 2023-07-30 16:35:00 +0100
|
46
|
+
|
47
|
+
[DOC] Corrections to tutorial
|
48
|
+
|
49
|
+
commit e8bee0be8f52f5a3e08d0db09a13798701670391
|
12
50
|
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
13
|
-
AuthorDate:
|
14
|
-
Commit:
|
15
|
-
CommitDate:
|
51
|
+
AuthorDate: 2023-07-30 11:24:59 +0900
|
52
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
53
|
+
CommitDate: 2023-07-30 11:24:59 +0900
|
54
|
+
|
55
|
+
[DOC] Mark up constant and method names as code
|
16
56
|
|
17
|
-
|
57
|
+
commit 3cde2178d3d1bd1c7bf9c7e2af930e89e0bad6e5
|
58
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
59
|
+
AuthorDate: 2023-07-12 01:07:11 +0900
|
60
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
61
|
+
CommitDate: 2023-07-12 01:07:37 +0900
|
62
|
+
|
63
|
+
Upload according to build results
|
64
|
+
|
65
|
+
commit fb91d97c109269aee4fb0f7ecc1b3826dad118d8
|
66
|
+
Author: Jeremy Evans <code@jeremyevans.net>
|
67
|
+
AuthorDate: 2023-04-04 13:58:59 -0700
|
68
|
+
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
69
|
+
CommitDate: 2023-04-05 08:43:45 +0900
|
70
|
+
|
71
|
+
Document requires needed for Date/DateTime/Time/URI/Shellwords support
|
72
|
+
|
73
|
+
Fixes [Bug #19566]
|
74
|
+
|
75
|
+
commit 5bf4fa8a72a00d0891106af21655800db1d2ceff
|
76
|
+
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
77
|
+
AuthorDate: 2023-03-24 13:01:25 +0900
|
78
|
+
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
79
|
+
CommitDate: 2023-03-24 13:38:04 +0900
|
18
80
|
|
19
|
-
commit
|
20
|
-
|
21
|
-
|
81
|
+
Update test libraries from https://github.com/ruby/ruby/commit/b4e438d8aabaf4bba2b27f374c787543fae07c58
|
82
|
+
|
83
|
+
commit b67cc2407e6f9b5b4c9bc0751e21fa4969da0ceb
|
84
|
+
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
85
|
+
AuthorDate: 2023-02-18 16:37:54 +0900
|
22
86
|
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
23
|
-
CommitDate:
|
87
|
+
CommitDate: 2023-02-18 16:46:18 +0900
|
88
|
+
|
89
|
+
Skip build and upload package with Windows
|
90
|
+
|
91
|
+
commit fd6621a23da2e8d3d1a3ab75003dbfeb0e42e2ab
|
92
|
+
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
93
|
+
AuthorDate: 2023-02-18 16:31:55 +0900
|
94
|
+
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
95
|
+
CommitDate: 2023-02-18 16:46:18 +0900
|
96
|
+
|
97
|
+
Exclude JRuby from Windows
|
98
|
+
|
99
|
+
commit 426726fa170ab5a1ddba4f2ef04ae6864ed2a625
|
100
|
+
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
101
|
+
AuthorDate: 2023-02-18 16:25:39 +0900
|
102
|
+
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
103
|
+
CommitDate: 2023-02-18 16:46:18 +0900
|
104
|
+
|
105
|
+
Try with Windows
|
106
|
+
|
107
|
+
commit 45fade52f519f656f62eb601899e3e96d3f69fca
|
108
|
+
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
109
|
+
AuthorDate: 2023-02-18 16:25:25 +0900
|
110
|
+
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
|
111
|
+
CommitDate: 2023-02-18 16:46:18 +0900
|
112
|
+
|
113
|
+
Use ruby/actions/.github/workflows/ruby_versions.yml@master
|
114
|
+
|
115
|
+
commit 366a6a6b569037420013e83ada92012d0c6a2f76
|
116
|
+
Author: Keishi Tanaka <k-tanaka@ruby-dev.jp>
|
117
|
+
AuthorDate: 2023-01-21 14:09:00 +0900
|
118
|
+
Commit: GitHub <noreply@github.com>
|
119
|
+
CommitDate: 2023-01-21 14:09:00 +0900
|
120
|
+
|
121
|
+
Migrate set-output to $GITHUB_OUTPUT (#50)
|
122
|
+
|
123
|
+
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
124
|
+
|
125
|
+
commit 3e63d878f895a299a6ddeee5f8c615b69edf401c
|
126
|
+
Author: Junichi Ito <jit@sonicgarden.jp>
|
127
|
+
AuthorDate: 2022-11-29 08:07:47 +0900
|
128
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
129
|
+
CommitDate: 2022-12-22 19:58:43 +0900
|
130
|
+
|
131
|
+
Add symbolize_names to getopts
|
132
|
+
|
133
|
+
commit 73661899ad17e1061c7fc0f88cc4ac4e66a3c9a9
|
134
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
135
|
+
AuthorDate: 2022-12-22 19:57:30 +0900
|
136
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
137
|
+
CommitDate: 2022-12-22 19:57:30 +0900
|
138
|
+
|
139
|
+
bump up to 0.4.0.pre.1
|
140
|
+
|
141
|
+
commit 697ea7bf8e343704e735fb2d1f7787d96b843469
|
142
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
143
|
+
AuthorDate: 2022-12-22 19:55:51 +0900
|
144
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
145
|
+
CommitDate: 2022-12-22 19:55:51 +0900
|
146
|
+
|
147
|
+
Add .rdoc_options
|
148
|
+
|
149
|
+
commit ab0022bd23d77e515390cbb2c165f7647400be46
|
150
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
151
|
+
AuthorDate: 2021-09-29 11:47:47 +0900
|
152
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
153
|
+
CommitDate: 2022-12-22 19:53:20 +0900
|
154
|
+
|
155
|
+
Cron test
|
156
|
+
|
157
|
+
commit 33663e2c50eb8496b81750976b3480c14783470d
|
158
|
+
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
159
|
+
AuthorDate: 2022-12-22 19:48:22 +0900
|
160
|
+
Commit: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
161
|
+
CommitDate: 2022-12-22 19:50:16 +0900
|
24
162
|
|
25
|
-
|
163
|
+
Add `helper.bump`
|
@@ -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
|
@@ -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.
|
data/doc/optparse/tutorial.rdoc
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
== Tutorial
|
2
2
|
|
3
|
-
=== Why
|
3
|
+
=== Why +OptionParser+?
|
4
4
|
|
5
5
|
When a Ruby program executes, it captures its command-line arguments
|
6
6
|
and options into variable ARGV.
|
7
|
-
This simple program just prints its
|
7
|
+
This simple program just prints its +ARGV+:
|
8
8
|
|
9
9
|
:include: ruby/argv.rb
|
10
10
|
|
@@ -18,7 +18,7 @@ the command-line options.
|
|
18
18
|
|
19
19
|
OptionParser offers methods for parsing and handling those options.
|
20
20
|
|
21
|
-
With
|
21
|
+
With +OptionParser+, you can define options so that for each option:
|
22
22
|
|
23
23
|
- The code that defines the option and code that handles that option
|
24
24
|
are in the same place.
|
@@ -55,7 +55,7 @@ The class also has method #help, which displays automatically-generated help tex
|
|
55
55
|
- {Argument Converters}[#label-Argument+Converters]
|
56
56
|
- {Help}[#label-Help]
|
57
57
|
- {Top List and Base List}[#label-Top+List+and+Base+List]
|
58
|
-
- {Defining Options}[#label-Defining+Options]
|
58
|
+
- {Methods for Defining Options}[#label-Methods+for+Defining+Options]
|
59
59
|
- {Parsing}[#label-Parsing]
|
60
60
|
- {Method parse!}[#label-Method+parse-21]
|
61
61
|
- {Method parse}[#label-Method+parse]
|
@@ -66,10 +66,10 @@ The class also has method #help, which displays automatically-generated help tex
|
|
66
66
|
|
67
67
|
=== To Begin With
|
68
68
|
|
69
|
-
To use
|
69
|
+
To use +OptionParser+:
|
70
70
|
|
71
|
-
1. Require the
|
72
|
-
2. Create an
|
71
|
+
1. Require the +OptionParser+ code.
|
72
|
+
2. Create an +OptionParser+ object.
|
73
73
|
3. Define one or more options.
|
74
74
|
4. Parse the command line.
|
75
75
|
|
@@ -92,9 +92,9 @@ the block defined for the option is called with the argument value.
|
|
92
92
|
An invalid option raises an exception.
|
93
93
|
|
94
94
|
Method #parse!, which is used most often in this tutorial,
|
95
|
-
removes from
|
95
|
+
removes from +ARGV+ the options and arguments it finds,
|
96
96
|
leaving other non-option arguments for the program to handle on its own.
|
97
|
-
The method returns the possibly-reduced
|
97
|
+
The method returns the possibly-reduced +ARGV+ array.
|
98
98
|
|
99
99
|
Executions:
|
100
100
|
|
@@ -115,7 +115,7 @@ Executions:
|
|
115
115
|
|
116
116
|
=== Defining Options
|
117
117
|
|
118
|
-
A common way to define an option in
|
118
|
+
A common way to define an option in +OptionParser+
|
119
119
|
is with instance method OptionParser#on.
|
120
120
|
|
121
121
|
The method may be called with any number of arguments
|
@@ -522,11 +522,11 @@ Executions:
|
|
522
522
|
=== Argument Converters
|
523
523
|
|
524
524
|
An option can specify that its argument is to be converted
|
525
|
-
from the default
|
525
|
+
from the default +String+ to an instance of another class.
|
526
526
|
There are a number of built-in converters.
|
527
527
|
|
528
528
|
Example: File +date.rb+
|
529
|
-
defines an option whose argument is to be converted to a
|
529
|
+
defines an option whose argument is to be converted to a +Date+ object.
|
530
530
|
The argument is converted by method Date#parse.
|
531
531
|
|
532
532
|
:include: ruby/date.rb
|
@@ -546,7 +546,7 @@ for both built-in and custom converters.
|
|
546
546
|
|
547
547
|
=== Help
|
548
548
|
|
549
|
-
|
549
|
+
+OptionParser+ makes automatically generated help text available.
|
550
550
|
|
551
551
|
The help text consists of:
|
552
552
|
|
@@ -614,49 +614,49 @@ Execution:
|
|
614
614
|
|
615
615
|
=== Top List and Base List
|
616
616
|
|
617
|
-
An
|
617
|
+
An +OptionParser+ object maintains a stack of OptionParser::List objects,
|
618
618
|
each of which has a collection of zero or more options.
|
619
619
|
It is unlikely that you'll need to add or take away from that stack.
|
620
620
|
|
621
621
|
The stack includes:
|
622
622
|
|
623
|
-
- The <em>top list</em>, given by
|
624
|
-
- The <em>base list</em>, given by
|
623
|
+
- The <em>top list</em>, given by OptionParser#top.
|
624
|
+
- The <em>base list</em>, given by OptionParser#base.
|
625
625
|
|
626
|
-
When
|
626
|
+
When +OptionParser+ builds its help text, the options in the top list
|
627
627
|
precede those in the base list.
|
628
628
|
|
629
|
-
=== Defining Options
|
629
|
+
=== Methods for Defining Options
|
630
630
|
|
631
631
|
Option-defining methods allow you to create an option, and also append/prepend it
|
632
632
|
to the top list or append it to the base list.
|
633
633
|
|
634
634
|
Each of these next three methods accepts a sequence of parameter arguments and a block,
|
635
|
-
creates an option object using method
|
635
|
+
creates an option object using method OptionParser#make_switch (see below),
|
636
636
|
and returns the created option:
|
637
637
|
|
638
|
-
- \Method
|
638
|
+
- \Method OptionParser#define appends the created option to the top list.
|
639
639
|
|
640
|
-
- \Method
|
640
|
+
- \Method OptionParser#define_head prepends the created option to the top list.
|
641
641
|
|
642
|
-
- \Method
|
642
|
+
- \Method OptionParser#define_tail appends the created option to the base list.
|
643
643
|
|
644
644
|
These next three methods are identical to the three above,
|
645
645
|
except for their return values:
|
646
646
|
|
647
|
-
- \Method
|
647
|
+
- \Method OptionParser#on is identical to method OptionParser#define,
|
648
648
|
except that it returns the parser object +self+.
|
649
649
|
|
650
|
-
- \Method
|
650
|
+
- \Method OptionParser#on_head is identical to method OptionParser#define_head,
|
651
651
|
except that it returns the parser object +self+.
|
652
652
|
|
653
|
-
- \Method
|
653
|
+
- \Method OptionParser#on_tail is identical to method OptionParser#define_tail,
|
654
654
|
except that it returns the parser object +self+.
|
655
655
|
|
656
656
|
Though you may never need to call it directly,
|
657
657
|
here's the core method for defining an option:
|
658
658
|
|
659
|
-
- \Method
|
659
|
+
- \Method OptionParser#make_switch accepts an array of parameters and a block.
|
660
660
|
See {Parameters for New Options}[optparse/option_params.rdoc].
|
661
661
|
This method is unlike others here in that it:
|
662
662
|
- Accepts an <em>array of parameters</em>;
|
@@ -668,7 +668,7 @@ here's the core method for defining an option:
|
|
668
668
|
|
669
669
|
=== Parsing
|
670
670
|
|
671
|
-
|
671
|
+
+OptionParser+ has six instance methods for parsing.
|
672
672
|
|
673
673
|
Three have names ending with a "bang" (<tt>!</tt>):
|
674
674
|
|
@@ -699,9 +699,9 @@ Each of these methods:
|
|
699
699
|
(see {Keyword Argument into}[#label-Keyword+Argument+into]).
|
700
700
|
- Returns +argv+, possibly with some elements removed.
|
701
701
|
|
702
|
-
==== \Method parse
|
702
|
+
==== \Method +parse!+
|
703
703
|
|
704
|
-
\Method parse
|
704
|
+
\Method +parse!+:
|
705
705
|
|
706
706
|
- Accepts an optional array of string arguments +argv+;
|
707
707
|
if not given, +argv+ defaults to the value of OptionParser#default_argv,
|
@@ -756,9 +756,9 @@ Processing ended by non-option found when +POSIXLY_CORRECT+ is defined:
|
|
756
756
|
["--xxx", true]
|
757
757
|
Returned: ["input_file.txt", "output_file.txt", "-yyy", "FOO"] (Array)
|
758
758
|
|
759
|
-
==== \Method parse
|
759
|
+
==== \Method +parse+
|
760
760
|
|
761
|
-
\Method parse
|
761
|
+
\Method +parse+:
|
762
762
|
|
763
763
|
- Accepts an array of string arguments
|
764
764
|
_or_ zero or more string arguments.
|
@@ -810,25 +810,25 @@ Processing ended by non-option found when +POSIXLY_CORRECT+ is defined:
|
|
810
810
|
["--xxx", true]
|
811
811
|
Returned: ["input_file.txt", "output_file.txt", "-yyy", "FOO"] (Array)
|
812
812
|
|
813
|
-
==== \Method order
|
813
|
+
==== \Method +order!+
|
814
814
|
|
815
815
|
Calling method OptionParser#order! gives exactly the same result as
|
816
816
|
calling method OptionParser#parse! with environment variable
|
817
817
|
+POSIXLY_CORRECT+ defined.
|
818
818
|
|
819
|
-
==== \Method order
|
819
|
+
==== \Method +order+
|
820
820
|
|
821
821
|
Calling method OptionParser#order gives exactly the same result as
|
822
822
|
calling method OptionParser#parse with environment variable
|
823
823
|
+POSIXLY_CORRECT+ defined.
|
824
824
|
|
825
|
-
==== \Method permute
|
825
|
+
==== \Method +permute!+
|
826
826
|
|
827
827
|
Calling method OptionParser#permute! gives exactly the same result as
|
828
828
|
calling method OptionParser#parse! with environment variable
|
829
829
|
+POSIXLY_CORRECT+ _not_ defined.
|
830
830
|
|
831
|
-
==== \Method permute
|
831
|
+
==== \Method +permute+
|
832
832
|
|
833
833
|
Calling method OptionParser#permute gives exactly the same result as
|
834
834
|
calling method OptionParser#parse with environment variable
|
data/lib/optparse.rb
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
#
|
49
49
|
# == OptionParser
|
50
50
|
#
|
51
|
-
# === New to
|
51
|
+
# === New to +OptionParser+?
|
52
52
|
#
|
53
53
|
# See the {Tutorial}[optparse/tutorial.rdoc].
|
54
54
|
#
|
@@ -152,14 +152,14 @@
|
|
152
152
|
# OptionParser supports the ability to coerce command line arguments
|
153
153
|
# into objects for us.
|
154
154
|
#
|
155
|
-
# OptionParser comes with a few ready-to-use kinds of
|
155
|
+
# OptionParser comes with a few ready-to-use kinds of type
|
156
156
|
# coercion. They are:
|
157
157
|
#
|
158
|
-
# - Date -- Anything accepted by +Date.parse+
|
159
|
-
# - DateTime -- Anything accepted by +DateTime.parse+
|
160
|
-
# - Time -- Anything accepted by +Time.httpdate+ or +Time.parse+
|
161
|
-
# - URI -- Anything accepted by +URI.parse+
|
162
|
-
# - Shellwords -- Anything accepted by +Shellwords.shellwords+
|
158
|
+
# - Date -- Anything accepted by +Date.parse+ (need to require +optparse/date+)
|
159
|
+
# - DateTime -- Anything accepted by +DateTime.parse+ (need to require +optparse/date+)
|
160
|
+
# - Time -- Anything accepted by +Time.httpdate+ or +Time.parse+ (need to require +optparse/time+)
|
161
|
+
# - URI -- Anything accepted by +URI.parse+ (need to require +optparse/uri+)
|
162
|
+
# - Shellwords -- Anything accepted by +Shellwords.shellwords+ (need to require +optparse/shellwords+)
|
163
163
|
# - String -- Any non-empty string
|
164
164
|
# - Integer -- Any integer. Will convert octal. (e.g. 124, -3, 040)
|
165
165
|
# - Float -- Any float. (e.g. 10, 3.14, -100E+13)
|
@@ -425,7 +425,7 @@
|
|
425
425
|
# If you have any questions, file a ticket at http://bugs.ruby-lang.org.
|
426
426
|
#
|
427
427
|
class OptionParser
|
428
|
-
OptionParser::Version = "0.
|
428
|
+
OptionParser::Version = "0.4.0"
|
429
429
|
|
430
430
|
# :stopdoc:
|
431
431
|
NoArgument = [NO_ARGUMENT = :NONE, nil].freeze
|
@@ -1775,7 +1775,16 @@ XXX
|
|
1775
1775
|
# # params["bar"] = "x" # --bar x
|
1776
1776
|
# # params["zot"] = "z" # --zot Z
|
1777
1777
|
#
|
1778
|
-
|
1778
|
+
# Option +symbolize_names+ (boolean) specifies whether returned Hash keys should be Symbols; defaults to +false+ (use Strings).
|
1779
|
+
#
|
1780
|
+
# params = ARGV.getopts("ab:", "foo", "bar:", "zot:Z;zot option", symbolize_names: true)
|
1781
|
+
# # params[:a] = true # -a
|
1782
|
+
# # params[:b] = "1" # -b1
|
1783
|
+
# # params[:foo] = "1" # --foo
|
1784
|
+
# # params[:bar] = "x" # --bar x
|
1785
|
+
# # params[:zot] = "z" # --zot Z
|
1786
|
+
#
|
1787
|
+
def getopts(*args, symbolize_names: false)
|
1779
1788
|
argv = Array === args.first ? args.shift : default_argv
|
1780
1789
|
single_options, *long_options = *args
|
1781
1790
|
|
@@ -1804,14 +1813,14 @@ XXX
|
|
1804
1813
|
end
|
1805
1814
|
|
1806
1815
|
parse_in_order(argv, result.method(:[]=))
|
1807
|
-
result
|
1816
|
+
symbolize_names ? result.transform_keys(&:to_sym) : result
|
1808
1817
|
end
|
1809
1818
|
|
1810
1819
|
#
|
1811
1820
|
# See #getopts.
|
1812
1821
|
#
|
1813
|
-
def self.getopts(*args)
|
1814
|
-
new.getopts(*args)
|
1822
|
+
def self.getopts(*args, symbolize_names: false)
|
1823
|
+
new.getopts(*args, symbolize_names: symbolize_names)
|
1815
1824
|
end
|
1816
1825
|
|
1817
1826
|
#
|
@@ -2289,8 +2298,8 @@ XXX
|
|
2289
2298
|
# rescue OptionParser::ParseError
|
2290
2299
|
# end
|
2291
2300
|
#
|
2292
|
-
def getopts(*args)
|
2293
|
-
options.getopts(self, *args)
|
2301
|
+
def getopts(*args, symbolize_names: false)
|
2302
|
+
options.getopts(self, *args, symbolize_names: symbolize_names)
|
2294
2303
|
end
|
2295
2304
|
|
2296
2305
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: optparse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nobu Nakada
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: OptionParser is a class for command-line option analysis.
|
14
14
|
email:
|
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
requirements: []
|
118
|
-
rubygems_version: 3.
|
118
|
+
rubygems_version: 3.5.0.dev
|
119
119
|
signing_key:
|
120
120
|
specification_version: 4
|
121
121
|
summary: OptionParser is a class for command-line option analysis.
|