Der folgende Code funktioniert, aber ich sammele manuell Argument Fehler für die erforderlichen Argumente mit fetch
, wenn ich die erforderlichen Argumente in die native OptionParser sytax für erforderlichen Parameter aufbauen wollen:Wie generieren OptionParser erfordern Argumente
# 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
Ich habe mich auf die Verwendung eines Rubin Juwel namens https://github.com/JEG2/highline entschieden dies hat eine CLI-Menü-DSL und erforderlichen params. – lukemh
Gute Arbeit. Ein Kollege von mir schrieb auch ein Juwel namens Escort, das die erforderlichen Parameter für CLI-Apps festlegen kann: https://github.com/skorks/escort#required-arguments –