模块 OptionParser::Arguable
扩展命令行参数数组 (ARGV) 以便解析自身。
公共类方法
extend_object(obj) 点击切换源代码
初始化实例变量。
调用超类方法
# File lib/optparse.rb, line 2308 def self.extend_object(obj) super obj.instance_eval {@optparse = nil} end
new(*args) 点击切换源代码
调用超类方法
# File lib/optparse.rb, line 2312 def initialize(*args) super @optparse = nil end
公共实例方法
getopts(*args, symbolize_names: false) 点击切换源代码
可以按如下方式替换 getopts。另请参见 OptionParser#getopts
。
def getopts(*args) ($OPT = ARGV.getopts(*args)).each do |opt, val| eval "$OPT_#{opt.gsub(/[^A-Za-z0-9_]/, '_')} = val" end rescue OptionParser::ParseError end
# File lib/optparse.rb, line 2301 def getopts(*args, symbolize_names: false) options.getopts(self, *args, symbolize_names: symbolize_names) end
options() { |optparse| ... } 点击切换源代码
实际的 OptionParser
对象,如果不存在则自动创建。
如果使用块调用,则会产生 OptionParser
对象并返回块的结果。如果块中出现 OptionParser::ParseError
异常,则会将其捕获,将错误消息打印到 STDERR 并返回 nil
。
# File lib/optparse.rb, line 2260 def options @optparse ||= OptionParser.new @optparse.default_argv = self block_given? or return @optparse begin yield @optparse rescue ParseError @optparse.warn $! nil end end
options=(opt) 点击切换源代码
设置 OptionParser
对象,当 opt
为 false
或 nil
时,方法 OptionParser::Arguable#options
和 OptionParser::Arguable#options=
将被取消定义。因此,无法通过接收器对象访问 OptionParser
对象。
# File lib/optparse.rb, line 2243 def options=(opt) unless @optparse = opt class << self undef_method(:options) undef_method(:options=) end end end
order!(&blk) 点击切换源代码
按顺序解析 self
,并返回包含未解析的剩余参数的 self
。
# File lib/optparse.rb, line 2276 def order!(&blk) options.order!(self, &blk) end
parse!() 点击切换源代码
解析 self
,并返回包含未解析的剩余参数的 self
。
# File lib/optparse.rb, line 2288 def parse!() options.parse!(self) end
permute!() 点击切换源代码
以排列模式解析 self
,并返回包含未解析的剩余参数的 self
。
# File lib/optparse.rb, line 2282 def permute!() options.permute!(self) end