module OptionParser::Arguable
扩展命令行参数数组(ARGV)以便自行解析。
Public Class Methods
Source
# File lib/optparse.rb, line 2435 def self.extend_object(obj) super obj.instance_eval {@optparse = nil} end
初始化实例变量。
调用超类方法
Public Instance Methods
Source
# File lib/optparse.rb, line 2428 def getopts(*args, symbolize_names: false, **keywords) options.getopts(self, *args, symbolize_names: symbolize_names, **keywords) end
可以使用如下方式替换 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
Source
# File lib/optparse.rb, line 2387 def options @optparse ||= OptionParser.new @optparse.default_argv = self block_given? or return @optparse begin yield @optparse rescue ParseError @optparse.warn $! nil end end
实际的 OptionParser 对象,如果不存在则自动创建。
如果使用块调用,则将 OptionParser 对象传递给块,并返回块的结果。如果在块中发生 OptionParser::ParseError 异常,则会被捕获,在 STDERR 上打印错误消息,并返回 nil。
Source
# File lib/optparse.rb, line 2370 def options=(opt) unless @optparse = opt class << self undef_method(:options) undef_method(:options=) end end end
设置 OptionParser 对象,当 opt 为 false 或 nil 时,方法 OptionParser::Arguable#options 和 OptionParser::Arguable#options= 将未定义。因此,无法通过接收者对象访问 OptionParser 对象。
Source
# File lib/optparse.rb, line 2403 def order!(**keywords, &blk) options.order!(self, **keywords, &blk) end
以顺序方式销毁性地解析 self,并返回包含未解析剩余参数的 self。
Source
# File lib/optparse.rb, line 2415 def parse!(**keywords) options.parse!(self, **keywords) end
销毁性地解析 self,并返回包含未解析剩余参数的 self。
Source
# File lib/optparse.rb, line 2409 def permute!(**keywords) options.permute!(self, **keywords) end
以置换模式销毁性地解析 self,并返回包含未解析剩余参数的 self。