Comment générer OptionParser nécessite des arguments
Le code ci-dessous fonctionne, mais je suis manuellement élever argument erreurs pour les arguments requis à l'aide de fetch
quand je veux construire les arguments requis dans le native OptionParser sytax pour les paramètres requis:
# 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
source d'informationauteur lukemh
Vous devez vous connecter pour publier un commentaire.
Il y a une question similaire, avec une réponse qui peut vous aider à:
"Comment spécifier une option obligatoire (pas d'argument) avec Ruby OptionParser?"
En bref: il ne semble pas être un moyen de prendre une option requise (ils sont appelés les options, après tout).
Il y a un
OptionParser::MissingArgument
exception que vous pourrait soulever plutôt que de laArgumentError
vous êtes en train de lancer.