首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OptionParser::Arguable

扩展命令行参数数组(ARGV)来解析它自己。

公共类方法

extend_object(obj) Show source

初始化实例变量。

调用超类方法

代码语言:javascript
复制
# File lib/optparse.rb, line 2129
def self.extend_object(obj)
  super
  obj.instance_eval {@optparse = nil}
end

new(*args) Show source

调用超类方法

代码语言:javascript
复制
# File lib/optparse.rb, line 2133
def initialize(*args)
  super
  @optparse = nil
end

公共实例方法

getopts(*args) Show source

getopts的替换可能如下。另请参阅OptionParser#getopts。

代码语言:javascript
复制
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
代码语言:javascript
复制
# File lib/optparse.rb, line 2122
def getopts(*args)
  options.getopts(self, *args)
end

options() { |optparse| ... } Show source

实际的OptionParser对象,如果不存在则自动创建。

如果使用块调用,则产生OptionParser对象并返回块的结果。如果在块中发生OptionParser :: ParseError异常,它将被解救,将打印到STDERR并nil返回的错误消息。

代码语言:javascript
复制
# 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对象,当optfalse或时nil,方法#options和#options =未定义。因此,没有办法通过接收器对象访问OptionParser对象。

代码语言:javascript
复制
# 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包含其余参数未解析的返回值。

代码语言:javascript
复制
# File lib/optparse.rb, line 2097
def order!(&blk) options.order!(self, &blk) end

parse!() Show source

self破坏性地解析并返回self包含剩余未解析的参数。

代码语言:javascript
复制
# File lib/optparse.rb, line 2109
def parse!() options.parse!(self) end

permute!() Show source

self以置换模式进行破坏性分析,并返回self包含未解析的剩余参数。

代码语言:javascript
复制
# File lib/optparse.rb, line 2103
def permute!() options.permute!(self) end

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com