(Ceci est lié à cette question).
Comment puis-je supprimer les avertissements d'obsolescence dans Ruby, jusqu'à ce que je trouve le temps de mettre à jour le code? Exemple: La commande suivante générera un avertissement bascule est obsolète (la commande elle-même est absurde; je voulais juste fournir un exemple minimal, syntaxiquement correct):
ruby -e 'require "warning";; Warning.ignore(/deprecated/) 0 if /a/.../b/'
J'ai déjà essayé
ruby -e '$VERBOSE=nil;0 if /a/.../b/'
et, après avoir installé la gemme warning ,
ruby -v -e '0 if /a/.../b/'
3 Réponses :
Je pense que c'est:
ruby -W0 -e 'code'
Malheureusement, il filtre tous les avertissements (pas seulement les avertissements obsolètes ...)
L'avertissement est généré par l'analyseur avant que le code ne soit évalué. Cela inclut votre code Warning.ignore
, donc la configuration n'est pas prête lorsque l'avertissement se produit.
Vous pouvez déplacer ce code dans un fichier séparé:
$ ruby -r./warn.rb -e '0 if /a/.../b/'
La bascule n'est plus obsolète.
Réponse à la question actuelle: ruby -W: non obsolète
Merci de l'avoir signalé! Je n'étais pas au courant, mais maintenant que vous le dites, j'ai trouvé cet article sur le sujet.
sur la base du commentaire à la réponse ci-dessous, je dois alors demander pourquoi en avez-vous besoin?
Voir le lien dans mon article, qui explique le contexte de ce problème.
qu'entendez-vous par «au seau de bits»? S'agit-il de journaux d'inondation ou de quelque chose?
dans le compartiment de bits est une autre façon de dire
2> / dev / null
.Pourquoi ne corrigez-vous pas simplement le code qui utilise la classe ou la méthode obsolète? Vous devrez quand même le faire à un moment donné si vous souhaitez pouvoir exécuter des versions à jour de Ruby.
@spickermann: C'est aussi le sujet de la question à laquelle j'ai lié. Je recherche une solution au moins d'une simplicité similaire à celle actuelle. Notez également que j'ai écrit ci-dessus jusqu'à ce que je trouve le temps de mettre à jour le code . Et j'espère toujours que les développeurs de Ruby repenseront leur décision de rendre cet élément de langage obsolète.