/ / Utilisation de la dernière version de pierre, quelle que soit sa source - ruby, rubygems, github

Utilisation de la dernière version de pierre, quelle que soit sa source - ruby, rubygems, github

Puis-je demander à ruby ​​ou rubygems d'utiliser la dernière gemme indépendamment de sa source?

Comme mentionné dans la mise à jour de cette question, il s’avère que ruby ​​utilise une gemme plus ancienne github (hmcgowan-roo 1.3.5) par rapport à une gem rubyforge plus récente, installée récemment

Je soupçonne que le lutin magique (rubis ou rubygems) regarde sous "h" avant de regarder sous "r".

Je peux forcer le rubyforge à être utilisé en faisant

gem "roo"

mais est-il possible de dire à ruby ​​/ rubygems que je suis heureux d’utiliser soit hmcgowan-roo, soit roo, mais j’ai besoin de la dernière version?

Réponses:

1 pour la réponse № 1

Non, il n'y a aucun moyen malheureusement. En ce qui concerne RubyGems, il ne s'agit pas du même joyau. RubyGems ne peut donc pas déterminer automatiquement quelle est la dernière version. Aux fins de la paranoïa, la ligne requise doit être considérée comme non déterministe s’il n’ya pas "appel de la méthode gem et que plusieurs versions de la même bibliothèque sont installées.

En général, vous voulez que vos appels à la méthode gemêtre situé à un endroit différent de vos besoins (cela permet de charger les fichiers paresseux), il est donc parfaitement raisonnable d’avoir un fichier fréquemment mis à jour qui n’exécute que de nombreux appels à la méthode gem pour vous assurer de a la bonne version de tout. De plus, en production, vous ne voulez généralement pas "me donner la dernière version", car la dernière version a peut-être changé d'API ou renommé certaines méthodes ou similaire, et si vous ne l'avez pas testé, vous ne l'utiliserez pas. savoir si ça va casser. Vous devez toujours vous assurer que vous utilisez une version spécifique, connue pour fonctionner, de chaque bibliothèque tierce.

En tant qu'auteur de bibliothèque, je parle généralement aux gens deune ou deux versions à l’avance si je vais apporter des modifications qui briseront l’utilisation plus ancienne de l’API. Cependant, il arrive que des personnes ne mettent pas à jour pendant un certain temps et se laissent prendre. Heureusement, la plupart des gens sont prudents et mettent en scène des choses. Ne soyez pas le type qui met à jour les bibliothèques directement en production sans les tester. :-)


0 pour la réponse № 2

Vous pouvez éventuellement utiliser la méthode gem pour spécifier celle que vous voulez.

Manuel RubyGems - Chapitre 4