模組 OptionParser::Arguable
延伸命令列參數陣列 (ARGV) 以解析自身。
公開類別方法
extend_object(obj) 按一下以切換來源
初始化實例變數。
呼叫超類別方法
# File lib/optparse.rb, line 2308 def self.extend_object(obj) super obj.instance_eval {@optparse = nil} end
new(*args) 按一下以切換來源
呼叫超類別方法
# File lib/optparse.rb, line 2312 def initialize(*args) super @optparse = nil end
公開實例方法
getopts(*args, symbolize_names: false) 按一下以切換來源
可以像以下範例一樣替換 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 2301 def getopts(*args, symbolize_names: false) options.getopts(self, *args, symbolize_names: symbolize_names) end
options() { |optparse| ... } 按一下以切換來源
實際的 OptionParser
物件,如果不存在,會自動建立。
如果呼叫時帶有區塊,會產生 OptionParser
物件,並傳回區塊的結果。如果區塊中發生 OptionParser::ParseError
例外狀況,會救援該狀況,將錯誤訊息印出到 STDERR,並傳回 nil
。
# File lib/optparse.rb, line 2260 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) 按一下以切換來源
設定 OptionParser
物件,當 opt
為 false
或 nil
時,方法 OptionParser::Arguable#options
和 OptionParser::Arguable#options=
會未定義。因此,沒有辦法透過接收器物件存取 OptionParser
物件。
# File lib/optparse.rb, line 2243 def options=(opt) unless @optparse = opt class << self undef_method(:options) undef_method(:options=) end end end
order!(&blk) 按一下以切換來源
以順序解析 self
並傳回 self
,其中包含未解析的剩餘參數。
# File lib/optparse.rb, line 2276 def order!(&blk) options.order!(self, &blk) end
parse!() 按一下以切換來源
解析 self
並傳回 self
,其中包含未解析的剩餘參數。
# File lib/optparse.rb, line 2288 def parse!() options.parse!(self) end
permute!() 按一下以切換來源
以排列組合模式解析 self
並傳回 self
,其中包含未解析的剩餘參數。
# File lib/optparse.rb, line 2282 def permute!() options.permute!(self) end