1
votes

Comment supprimer les avertissements d'obsolescence?

(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/'


6 commentaires

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.


3 Réponses :


2
votes

Je pense que c'est:

ruby -W0 -e 'code'


1 commentaires

Malheureusement, il filtre tous les avertissements (pas seulement les avertissements obsolètes ...)



5
votes

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/'


0 commentaires

3
votes

La bascule n'est plus obsolète.

Réponse à la question actuelle: ruby ​​-W: non obsolète


1 commentaires

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.