Sur la base de this réponse ont je le code ci-dessous qui donnePourquoi une variable locale non définie?
undefined local variable or method `username' for main:Object (NameError)
Question
Je suppose que cela a fonctionné en 2014, si quelqu'un peut voir pourquoi cela ne fonctionne pas sur une version moderne de Ruby ?
#!/usr/bin/ruby
USAGE = <<ENDUSAGE
Usage:
rejse_dumper [-h] [-v] [-u username] [-p password] [-a address]
ENDUSAGE
HELP = <<ENDHELP
-h, --help Show this help.
-u, --username The login username.
-p, --password Force create over an existing directory,
-a, --address The URL [Defaults to 'https://example.com']
ENDHELP
ARGS = { address: 'https://example.com' } # Setting default values
ARGV.each do |arg|
case arg
when '-h','--help' then ARGS[:help] = true
when '-u','--username' then next_arg = :username
when '-p','--password' then next_arg = :password
when '-a','--address' then next_arg = :address
else
if next_arg
ARGS[next_arg] = arg
end
end
end
if ARGS[:help]
puts USAGE
puts HELP if ARGS[:help]
exit
end
puts username
puts password
puts address
Vous dites rubis à la sortie de la valeur de 'username' via' puts username', mais 'username' n'est pas défini. – lurker