[ruby/optparse] Make use of option_params.rdoc

https://github.com/ruby/optparse/commit/d55d9284c3
This commit is contained in:
BurdetteLamar 2021-04-07 11:58:46 -05:00 committed by Nobuyoshi Nakada
parent 5891159f96
commit a5ecce9187
No known key found for this signature in database
GPG Key ID: 7CD2805BFA3770C6
4 changed files with 28 additions and 67 deletions

7
doc/creates_option.rdoc Normal file
View File

@ -0,0 +1,7 @@
Creates an option from the given parameters +params+.
See {Parameters for New Options}[doc/option_params/option_params_rdoc.html].
The block, if given, is the handler for the created option.
When the option is encountered during command-line parsing,
the block is called with the argument given for the option, if any.
See {Option Handlers}[doc/option_params/option_params_rdoc.html#label-Option+Handlers].

View File

@ -55,7 +55,7 @@ Contents:
- {Array}[#label-Array] - {Array}[#label-Array]
- {Regexp}[#label-Regexp] - {Regexp}[#label-Regexp]
- {Descriptions}[#label-Descriptions] - {Descriptions}[#label-Descriptions]
- {Handlers}[#label-Handlers] - {Option Handlers}[#label-Option+Handlers]
- {Handler Blocks}[#label-Handler+Blocks] - {Handler Blocks}[#label-Handler+Blocks]
- {Handler Procs}[#label-Handler+Procs] - {Handler Procs}[#label-Handler+Procs]
- {Handler Methods}[#label-Handler+Methods] - {Handler Methods}[#label-Handler+Methods]
@ -759,7 +759,7 @@ Executions:
$ ruby descriptions.rb --xxx $ ruby descriptions.rb --xxx
["--xxx", true] ["--xxx", true]
=== Handlers === Option Handlers
The handler for an option is an executable that will be called The handler for an option is an executable that will be called
when the option is encountered. The handler may be: when the option is encountered. The handler may be:

View File

@ -240,14 +240,14 @@
# #
# require 'optparse' # require 'optparse'
# #
# params = {} # options = {}
# OptionParser.new do |parser| # OptionParser.new do |parser|
# parser.on('-a') # parser.on('-a')
# parser.on('-b NUM', Integer) # parser.on('-b NUM', Integer)
# parser.on('-v', '--verbose') # parser.on('-v', '--verbose')
# end.parse!(into: params) # end.parse!(into: options)
# #
# p params # p options
# #
# Used: # Used:
# #
@ -1314,64 +1314,7 @@ XXX
# :call-seq: # :call-seq:
# make_switch(params, block = nil) # make_switch(params, block = nil)
# #
# Creates an OptionParser::Switch from the parameters. The parsed argument # :include: ../doc/creates_option.rdoc
# value is passed to the given block, where it can be processed.
#
# See at the beginning of OptionParser for some full examples.
#
# +params+ can include the following elements:
#
# [Argument style:]
# One of the following:
# :NONE, :REQUIRED, :OPTIONAL
#
# [Argument pattern:]
# Acceptable option argument format, must be pre-defined with
# OptionParser.accept or OptionParser#accept, or Regexp. This can appear
# once or assigned as String if not present, otherwise causes an
# ArgumentError. Examples:
# Float, Time, Array
#
# [Possible argument values:]
# Hash or Array.
# [:text, :binary, :auto]
# %w[iso-2022-jp shift_jis euc-jp utf8 binary]
# { "jis" => "iso-2022-jp", "sjis" => "shift_jis" }
#
# [Long style switch:]
# Specifies a long style switch which takes a mandatory, optional or no
# argument. It's a string of the following form:
# "--switch=MANDATORY" or "--switch MANDATORY"
# "--switch[=OPTIONAL]"
# "--switch"
#
# [Short style switch:]
# Specifies short style switch which takes a mandatory, optional or no
# argument. It's a string of the following form:
# "-xMANDATORY"
# "-x[OPTIONAL]"
# "-x"
# There is also a special form which matches character range (not full
# set of regular expression):
# "-[a-z]MANDATORY"
# "-[a-z][OPTIONAL]"
# "-[a-z]"
#
# [Argument style and description:]
# Instead of specifying mandatory or optional arguments directly in the
# switch parameter, this separate parameter can be used.
# "=MANDATORY"
# "=[OPTIONAL]"
#
# [Description:]
# Description string for the option.
# "Run verbosely"
# If you give multiple description strings, each string will be printed
# line by line.
#
# [Handler:]
# Handler for the parsed argument value. Either give a block or pass a
# Proc or Method as an argument.
# #
def make_switch(opts, block = nil) def make_switch(opts, block = nil)
short, long, nolong, style, pattern, conv, not_pattern, not_conv, not_style = [], [], [] short, long, nolong, style, pattern, conv, not_pattern, not_conv, not_style = [], [], []
@ -1509,6 +1452,8 @@ XXX
# :call-seq: # :call-seq:
# define(*params, &block) # define(*params, &block)
# #
# :include: ../doc/creates_option.rdoc
#
def define(*opts, &block) def define(*opts, &block)
top.append(*(sw = make_switch(opts, block))) top.append(*(sw = make_switch(opts, block)))
sw[0] sw[0]
@ -1517,8 +1462,7 @@ XXX
# :call-seq: # :call-seq:
# on(*params, &block) # on(*params, &block)
# #
# Add option switch and handler. See #make_switch for an explanation of # :include: ../doc/creates_option.rdoc
# parameters.
# #
def on(*opts, &block) def on(*opts, &block)
define(*opts, &block) define(*opts, &block)
@ -1529,6 +1473,8 @@ XXX
# :call-seq: # :call-seq:
# define_head(*params, &block) # define_head(*params, &block)
# #
# :include: ../doc/creates_option.rdoc
#
def define_head(*opts, &block) def define_head(*opts, &block)
top.prepend(*(sw = make_switch(opts, block))) top.prepend(*(sw = make_switch(opts, block)))
sw[0] sw[0]
@ -1537,7 +1483,9 @@ XXX
# :call-seq: # :call-seq:
# on_head(*params, &block) # on_head(*params, &block)
# #
# Add option switch like with #on, but at head of summary. # :include: ../doc/creates_option.rdoc
#
# The new option is added at the head of the summary.
# #
def on_head(*opts, &block) def on_head(*opts, &block)
define_head(*opts, &block) define_head(*opts, &block)
@ -1548,6 +1496,8 @@ XXX
# :call-seq: # :call-seq:
# define_tail(*params, &block) # define_tail(*params, &block)
# #
# :include: ../doc/creates_option.rdoc
#
def define_tail(*opts, &block) def define_tail(*opts, &block)
base.append(*(sw = make_switch(opts, block))) base.append(*(sw = make_switch(opts, block)))
sw[0] sw[0]
@ -1557,7 +1507,9 @@ XXX
# :call-seq: # :call-seq:
# on_tail(*params, &block) # on_tail(*params, &block)
# #
# Add option switch like with #on, but at tail of summary. # :include: ../doc/creates_option.rdoc
#
# The new option is added at the tail of the summary.
# #
def on_tail(*opts, &block) def on_tail(*opts, &block)
define_tail(*opts, &block) define_tail(*opts, &block)

View File

@ -5,6 +5,8 @@ class OptionParser
# :call-seq: # :call-seq:
# define_by_keywords(options, method, **params) # define_by_keywords(options, method, **params)
# #
# :include: ../../doc/creates_option.rdoc
#
def define_by_keywords(options, meth, **opts) def define_by_keywords(options, meth, **opts)
meth.parameters.each do |type, name| meth.parameters.each do |type, name|
case type case type