2009-04-20 4 views
0

Je suis coincé dans une situation totalement stupide. Lorsque j'utilise l'extrait ci-dessous, malgré que ma ligne de commande soit "./the_script.rb -s serv" et que je vérifie la valeur de la variable de service dans le code, il est toujours pris pour être de classe booléenne par optparse. Donc, je ne peux pas obtenir ma chaîne de la ligne de commande ...optpase retourne la vraie classe alors que la chaîne est fournie dans les arguments de ligne cmd

des idées?

opt = OptionParser.new do |opt| 

opt.on('-s','--service','twitter (tw) or identica (id)') do |val| 
    service = val.to_s 
end 

end 

Répondre

0

Je pense que vous voulez appeler opt.parse! sur le bloc quelque part.

1

Je suis un programmeur Python, pas un Ruby, mais en parcourant les exemples dans le Ruby docs pour cela, je dirais que le comportement par défaut comme vous l'avez est d'agir comme un booléen. Vous devez spécifier plus de paramètres pour réellement stocker la valeur.

opts.on("-s", "--service [SERVICE]", [:twitter, :identica], "Select a service (Twitter or Identica)" do |service| 
    options.service = service 
end 

Ensuite, options.service doit avoir le service désigné. Je pense ... Hey, c'est Ruby. ;-)

+0

+1 d'un rubis. C'est comme ça que tu le fais. – rampion

Questions connexes