web-dev-qa-db-fra.com

Utilisez RbConfig au lieu de config obsolète et obsolète

Lorsque j'exécute mon application Rails dans WEBrick sur Ubuntu, après la mise à niveau vers Ruby-1.9.3-p327, le message d'erreur suivant s'affiche:

[rake --tasks] /home/dsilver/.rvm/gems/Ruby-1.9.3-p327/gems/em-dir-watcher-0.9.4/lib/em-dir-watcher.rb:7: Utilisez RbConfig. au lieu de obsolète et obsolète Config.

Une idée de ce qui se passe? 

J'ai vu des articles reliant ceci à ImageMagick sous Windows. Je suis sur Ubuntu, mais l'application utilise ImageMagick, et la fonctionnalité ImageMagick semble s'être cassée depuis la mise à niveau de Ruby de 1.9.2 à 1.9.3. Je soupçonne une connexion.

Merci!

20
dsilver829

Le module Config a été renommé en RbConfig. Il est toujours possible d’utiliser l’ancien nom pour des raisons de compatibilité, mais Ruby émet un avertissement si vous le faites.

La gem em-dir-watcher utilise l’ancien nom et vous voyez donc l’avertissement lorsqu’il est chargé. Quelqu'un a déjà envoyé une requête pull corrigeant cela, mais la dernière mise à jour vers em-dir-watcher remontait à plus de deux ans et ne pourrait donc pas être fusionnée.

Il s’agit d’un avertissement généré et non d’une erreur. Votre code devrait donc fonctionner correctement. Si vous voulez vraiment vous débarrasser de cet avertissement, vous pouvez ajouter quelque chose comme ceci avant require 'em-dir-watcher':

Object.send :remove_const, :Config
Config = RbConfig

Ceci définit Config comme étant identique à RbConfig, ce que Ruby fait de toute façon, mais empêche l'avertissement.

18
matt

Vous pouvez faire (non recommandé):

Allez dans le fichier ../lib/Ruby/1.9/rbconfig/obsolete.rb

Editez le fichier, le changement commente la ligne #warn ...

Avec ce changement, éliminé le conseil "avertir"