模組 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 物件,當 optfalsenil 時,方法 OptionParser::Arguable#optionsOptionParser::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