OptionParser::Arguable
module 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}
end
new(*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)
end
options() { |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
end
options=(opt) Show source
设置OptionParser对象,当opt
为false
或时nil
,方法#opt
ions和#opt
ions =未定义。因此,没有办法通过接收器对象访问OptionParser对象。
# File lib/optparse.rb, line 2064
def options=(opt)
unless @optparse = opt
class << self
undef_method(:options)
undef_method(:options=)
end
end
end
order!(&blk) Show source
self
按顺序破坏性地进行分析,并返回self
包含其余参数未解析的返回值。
# File lib/optparse.rb, line 2097
def order!(&blk) options.order!(self, &blk) end
parse!() Show source
self
破坏性地解析并返回self
包含剩余未解析的参数。
# File lib/optparse.rb, line 2109
def parse!() options.parse!(self) end
permute!() Show source
self
以置换模式进行破坏性分析,并返回self
包含未解析的剩余参数。
# File lib/optparse.rb, line 2103
def permute!() options.permute!(self) end