Burdette Lamar 2021-04-12 20:33:19 -05:00 committed by Hiroshi SHIBATA
parent a15f0b9fe2
commit 43af561e08
No known key found for this signature in database
GPG Key ID: F9CF13417264FAC2
5 changed files with 165 additions and 0 deletions

21
doc/optparse/ruby/help.rb Normal file
View File

@ -0,0 +1,21 @@
require 'optparse'
parser = OptionParser.new
parser.on(
'-x', '--xxx',
'Adipiscing elit. Aenean commodo ligula eget.',
'Aenean massa. Cum sociis natoque penatibus',
)
parser.on(
'-y', '--yyy YYY',
'Lorem ipsum dolor sit amet, consectetuer.'
)
parser.on(
'-z', '--zzz [ZZZ]',
'Et magnis dis parturient montes, nascetur',
'ridiculus mus. Donec quam felis, ultricies',
'nec, pellentesque eu, pretium quis, sem.',
)
parser.parse!

View File

@ -0,0 +1,7 @@
require 'optparse'
parser = OptionParser.new
parser.banner = "Usage: ruby help_banner.rb"
parser.parse!

View File

@ -0,0 +1,25 @@
require 'optparse'
parser = OptionParser.new(
'ruby help_format.rb [options]', # Banner
20, # Width of options field
' ' * 2 # Indentation
)
parser.on(
'-x', '--xxx',
'Adipiscing elit. Aenean commodo ligula eget.',
'Aenean massa. Cum sociis natoque penatibus',
)
parser.on(
'-y', '--yyy YYY',
'Lorem ipsum dolor sit amet, consectetuer.'
)
parser.on(
'-z', '--zzz [ZZZ]',
'Et magnis dis parturient montes, nascetur',
'ridiculus mus. Donec quam felis, ultricies',
'nec, pellentesque eu, pretium quis, sem.',
)
parser.parse!

View File

@ -0,0 +1,7 @@
require 'optparse'
parser = OptionParser.new
parser.program_name = 'help_program_name.rb'
parser.parse!

View File

@ -50,6 +50,43 @@ The class also has:
- {Checking for Missing Options}[#label-Checking+for+Missing+Options]
- {Default Values for Options}[#label-Default+Values+for+Options]
- {Argument Converters}[#label-Argument+Converters]
- {Help}[#label-Help]
=== To Begin With
To use \OptionParser:
1. Require the \OptionParser code.
2. Create an \OptionParser object.
3. Define one or more options.
4. Parse the command line.
File +basic.rb+ defines three options, <tt>-x</tt>,
<tt>-y</tt>, and <tt>-z</tt>, each with a descriptive string,
and each with a block.
:include: ruby/basic.rb
From these defined options, the parser automatically builds help text:
$ ruby basic.rb --help
Usage: basic [options]
-x Whether to X
-y Whether to Y
-z Whether to Z
When an option is found during parsing,
the block defined for the option is called with the argument value.
Executions:
$ ruby basic.rb -x -z
["x", true]
["z", true]
$ ruby basic.rb -z -y -x
["z", true]
["y", true]
["x", true]
=== To Begin With
@ -422,3 +459,71 @@ Executions:
You can also define custom converters.
See {Argument Converters}[./argument_converters_rdoc.html]
for both built-in and custom converters.
=== Help
\OptionParser makes automatically generated help text available.
The help text consists of:
- A banner, showing the usage.
- Option short and long names.
- Option dummy argument names.
- Option descriptions.
Example code:
:include: ruby/help.rb
The option names and dummy argument names are defined as described above.
The option description consists of the strings that are not themselves option names;
An option can have more than one description string.
Execution:
Usage: help [options]
-x, --xxx Adipiscing elit. Aenean commodo ligula eget.
Aenean massa. Cum sociis natoque penatibus
-y, --yyy YYY Lorem ipsum dolor sit amet, consectetuer.
-z, --zzz [ZZZ] Et magnis dis parturient montes, nascetur
ridiculus mus. Donec quam felis, ultricies
nec, pellentesque eu, pretium quis, sem.
The program name is included in the default banner:
<tt>Usage: #{program_name} [options]</tt>;
you can change the program name.
:include: ruby/help_program_name.rb
Execution:
$ ruby help_program_name.rb --help
Usage: help_program_name.rb [options]
You can also change the entire banner.
:include: ruby/help_banner.rb
Execution:
$ ruby help_banner.rb --help
Usage: ruby help_banner.rb
By default, the option names are indented 4 spaces
and the width of the option-names field is 32 spaces.
You can change these values, along with the banner,
by passing parameters to OptionParser.new.
:include: ruby/help_format.rb
Execution:
$ ruby help_format.rb --help
ruby help_format.rb [options]
-x, --xxx Adipiscing elit. Aenean commodo ligula eget.
Aenean massa. Cum sociis natoque penatibus
-y, --yyy YYY Lorem ipsum dolor sit amet, consectetuer.
-z, --zzz [ZZZ] Et magnis dis parturient montes, nascetur
ridiculus mus. Donec quam felis, ultricies
nec, pellentesque eu, pretium quis, sem.