2009-09-16 8 views
9

Selon this post, nécessitant des rubygems est un anti-modèle.Pourquoi est-il «incorrect d'exiger des rubygems»?

require 'rubygems' 

L'argument semble se résumer à ceci:

Lorsque j'utilise votre bibliothèque, déployer votre application , ou d'exécuter vos tests je ne veux utiliser rubygems. Lorsque vous avez besoin de 'rubygems' dans votre code, vous retirez ma capacité pour prendre cette décision. I ne peut pas exiger des rubygems, mais vous ne pouvez pas l'exiger en premier lieu.

mais ne pouvait pas le même argument être fait au sujet de toute bibliothèque Ruby que vous require 'lorsque vous créez et partagez une bibliothèque de code avec d'autres personnes?

Répondre

9

Le principal problème avec exigeant rubygems est qu'il provoque une erreur sur les systèmes qui n'ont pas rubygems installés même si ils ont la bibliothèque que vous voulez réellement exiger.

Certaines personnes travaillent autour de cela en sauvant LoadError en exigeant des rubygems, mais c'est plutôt moche.

9

Si vous regardez les commentaires, vous verrez l'auteur dit ce

Ce que je ne cherche pas à faire est que rubygems est mauvais ou que les gens ne devraient pas l'utiliser. J'utiliser rubygems et pense qu'il est un élément essentiel de la réussite Ruby - Je n'ai pas la ligne « require « rubygems » » partout dans le code source de mon bibliothèque parce qu'il est pas nécessaire ou pratique et rend dur/impossible pour d'autres environnements (tels que bundler, rip, GAE, debian, roulés à la main, etc.) pour utiliser la bibliothèque sans rubygems, ce qui est souvent important pour .

En fait, je ne l'ai pas vraiment d'accord avec lui avant d'avoir lu, maintenant je

0

Rubygems n'est pas essentiel à l'application, c'est juste un moyen pratique de fournir une bibliothèque. En revanche, les autres bibliothèques utilisées sont essentielles à l'application.