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