OptionParser::Arguable
扩展命令行参数数组(ARGV)来解析它自己。
公共类方法
extend_object(obj) Show source
初始化实例变量。
调用超类方法
# File lib/optparse.rb, line 2129
def self.extend_object(obj)
super
obj.instance_eval {@optparse = nil}
endnew(*args) Show source
调用超类方法
# File lib/optparse.rb, line 2133
def initialize(*args)
super
@optparse = nil
end公共实例方法
getopts(*args) Show source
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 2122
def getopts(*args)
options.getopts(self, *args)
endoptions() { |optparse| ... } Show source
实际的OptionParser对象,如果不存在则自动创建。
如果使用块调用,则产生OptionParser对象并返回块的结果。如果在块中发生OptionParser :: ParseError异常,它将被解救,将打印到STDERR并nil返回的错误消息。
# File lib/optparse.rb, line 2081
def options
@optparse ||= OptionParser.new
@optparse.default_argv = self
block_given? or return @optparse
begin
yield @optparse
rescue ParseError
@optparse.warn $!
nil
end
endoptions=(opt) Show source
设置OptionParser对象,当opt为false或时nil,方法#options和#options =未定义。因此,没有办法通过接收器对象访问OptionParser对象。
# File lib/optparse.rb, line 2064
def options=(opt)
unless @optparse = opt
class << self
undef_method(:options)
undef_method(:options=)
end
end
endorder!(&blk) Show source
self按顺序破坏性地进行分析,并返回self包含其余参数未解析的返回值。
# File lib/optparse.rb, line 2097
def order!(&blk) options.order!(self, &blk) endparse!() Show source
self破坏性地解析并返回self包含剩余未解析的参数。
# File lib/optparse.rb, line 2109
def parse!() options.parse!(self) endpermute!() Show source
self以置换模式进行破坏性分析,并返回self包含未解析的剩余参数。
# File lib/optparse.rb, line 2103
def permute!() options.permute!(self) end本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

