【发布时间】:2013-05-18 07:23:05
【问题描述】:
下面的代码有效,但是当我想将所需参数构建到所需参数的本机 OptionParser 语法中时,我使用 fetch 手动引发所需参数的参数错误:
# ocra script.rb -- --type=value
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("--type [TYPE]",String, [:gl, :time], "Select Exception file type (gl, time)") do |t|
options["type"] = t
end
opts.on("--company [TYPE]",String, [:jaxon, :doric], "Select Company (jaxon, doric)") do |t|
options["company"] = t
end
end.parse!
opts = {}
opts['type'] = options.fetch('type') do
raise ArgumentError,"no 'type' option specified as a parameter (gl or time)"
end
opts['company'] = options.fetch('company') do
raise ArgumentError,"no 'company' option specified as a parameter (doric or jaxon)"
end
【问题讨论】:
-
我发现
"--type [TYPE]"表示TYPE是可选的,而"--type TYPE"表示TYPE是必需的。所以不要键入括号 f(ಠ‿↼)z
标签: ruby optionparser